为什么这个三元操作失败了?

时间:2013-07-03 09:00:35

标签: c#

我有两条代码,一条使用条件和其他使用?操作

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

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() };

2 个答案:

答案 0 :(得分:11)

简单地说,你让操作员倒退,试试这个:

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

尽管如此,Henk对可读性提出了一个很好的观点。瞄准可读代码与不必要的简洁代码。在大多数情况下,我通常倾向于if语句。

答案 1 :(得分:3)

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