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

ckv*_*ckv 2 c#

我有2条代码,如果条件和其他使用?运营商.

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

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() };
Run Code Online (Sandbox Code Playgroud)

Ada*_*rth 11

简单来说,你有操作员向后,试试这个:

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

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