0

我错过了一些东西,我该怎么做?

var now = DateTime.Now;
string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths( -14 ).ToShortDateString();
string loadEndDate = Request.QueryString[ "ed" ] == String.Empty ? now.ToShortDateString();

基本上,如果 sd 和/或 ed 为空白,则当页面加载时,然后用我预定义的内容填充日期。

4

3 回答 3

5

你忘记了 a:和它之后的部分。

条件运算符包含三个部分:

  • 谓词 ( Request.QueryString["sd"] == String.Empty)
  • 真正的分支
  • 假分支

您缺少错误的分支语法和值。

我会把它写成:

string loadStartDate = string.IsNullOrWhitespace(Request.QueryString["sd"])
                       ? now.AddMonths( -14 ).ToShortDateString()
                       : Request.QueryString["sd"];

笔记:

string.IsNullOrWhitespace是 .NET 4.0 的新功能,因此string.IsNullOrEmpty请用于以前的版本。

于 2012-05-03T15:29:04.197 回答
1

它应该是这样的:

string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths
( -14 ).ToShortDateString():SOME OTHER VALUE;
于 2012-05-03T15:31:47.030 回答
1

条件运算符的语法是:

condition ? truevalue : falsevalue

您缺少冒号和条件为假时的值。

可以为此使用条件运算符,但它会变得有点重复。这样做:

DateTime now = DateTime.Now;
string loadStartDate = Request.QueryString["sd"];
if (String.IsNullOrEmpty(loadStartDate)) loadStartDate = now.AddMonths(-14).ToShortDateString();
string loadEndDate = Request.QueryString[ "ed" ];
if (String.IsNullOrEmpty(loadEndDate)) loadEndDate = now.ToShortDateString();
于 2012-05-03T15:33:57.823 回答