2

我有两段代码,一段使用 if 条件,另一段使用 ? 操作员。

两者都在相同的功能范围内连续定义。但是使用 ? 运算符抛出编译错误?这段代码有问题吗。

if (IsCount)
       filterParameterOriginTime.Values = new[] { new DateTime(2013, 7, 1).ToString() };
else
       filterParameterOriginTime.Values = new[] { lastPollTime.ToString() };

// IsCount ? filterParameterOriginTime.Values = new[] { new DateTime(2013, 7, 1).ToString() } : filterParameterOriginTime.Values = new[] { lastPollTime.ToString() };
4

2 回答 2

11

简单地说,你让运算符倒退,试试这个:

filterParameterOriginTime.Values = IsCount 
    ? new[] { new DateTime(2013, 7, 1).ToString() } 
    : new[] { lastPollTime.ToString() };

也就是说,Henk 提出了一个关于可读性的好观点。瞄准可读代码而不是不必要的简洁代码。if在大多数情况下,我通常倾向于陈述。

于 2013-07-03T09:02:03.523 回答
3
filterParameterOriginTime.Values = IsCount ?  new[] { new DateTime(2013, 7, 1).ToString() } :  new[] { lastPollTime.ToString() };
于 2013-07-03T09:04:25.783 回答