Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这个三元操作失败?_C# - Fatal编程技术网

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

C# 为什么这个三元操作失败?,c#,C#,我有两段代码,一段使用if条件,另一段使用?接线员 在相同的功能范围内相继定义了这两种类型。但是声明使用的是什么?运算符抛出编译错误?这段代码有问题 if (IsCount) filterParameterOriginTime.Values = new[] { new DateTime(2013, 7, 1).ToString() }; else filterParameterOriginTime.Values = new[] { lastPollTime.ToStr

我有两段代码,一段使用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() };

简单地说,如果运算符向后,请尝试以下操作:

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

尽管如此,Henk提出了一个关于可读性的好观点。目标是可读代码,而不是不必要的简洁代码。在大多数情况下,我通常倾向于使用
if
语句。

哦,现在我意识到了。我很久没有用那个接线员了。谢谢anyway@HenkHolterman三元风格一般还是我的特殊风格不单行?我个人倾向于使用
if
语句。@HenkHolterman有时必须使用三元样式-例如,在linq to实体中,如果要生成sql大小写。
?:
通常会因数组初始值设定项而加重。@HenkHolterman必须同意这种情况。我已经修改了我的答案,增加了可读性。听到其他开发人员对什么是可读的,什么是不可读的,总是很有趣的-创造了适应个人编码实践的机会:-)
filterParameterOriginTime.Values = IsCount ?  new[] { new DateTime(2013, 7, 1).ToString() } :  new[] { lastPollTime.ToString() };