【发布时间】:2014-05-12 17:27:23
【问题描述】:
我试图弄清楚这段代码在 C# 中的作用我不太熟悉?运算符,这种用法让我感到困惑。 我知道如果我做这样的事情。
Result = ans > 0 ? string.IsNullOrWhiteSpace(line[0]) : "";
归结为:
if(ans > 0)
Result = string.IsNullOrWhiteSpace(line[0]);
else
Result = "";
但是我不明白当这条线变成这样时会发生什么:
Result = ans > 0
? string.IsNullOrWhiteSpace(line[0])
? ""
: line[0].Trim().ToUpper()
: "";
当它以这种方式编写时,它只是配对?和第一个:它涉及到?这真的没有意义,因为 Result 只能有一个值。希望这是有道理的,我试图将代码压缩为我遇到的问题,以便于理解。如果我不够清楚,请告诉我。
【问题讨论】:
-
从左到右,从上到下。
-
这不会编译,因为
value++不是布尔值。 -
看起来它甚至无法编译。可能你压缩错误或用错误的语言标记。在发布之前测试您的代码。
-
对不起,我修改了第二部分,以便现在可以编译。第一个示例解释只是将其视为sudo代码。
-
不要写这样的代码,因为它很难阅读,其他开发人员必须来这里询问它是如何工作的。 :-)
标签: c# operators conditional