我可以在参数中添加if语句吗?

时间:2016-05-23 22:23:24

标签: c#

有没有办法在函数参数中添加if语句?例如:

var root = JsonConvert.DeserializeObject<RootObject>(jsonString);
var obj = root.body;

4 个答案:

答案 0 :(得分:6)

您正在寻找 conditional operator 三元运营商?:

其形式是

condition ? value_if_true : value_if_false

例如:

Console.Write((!Example) ? "Example is false" : "Example is true");

或我个人的偏好,

Console.Write(Example ? "Example is true" : "Example is false");

所以我永远不必考虑当&#34;而不是Example是假的时候会发生什么&#34;。

请注意,您无法为value_if_truevalue_if_false添加任意代码 - 它必须是表达式,而不是语句。所以上面的内容是有效的,因为

(!Example) ? "Example is false" : "Example is true"

string,你可以写:

string message = (!Example) ? "Example is false" : "Example is true";
Console.Write(message);

然而,你做不到

(!Example) ? Console.Write("Example is false") : Console.Write("Example is true")

例如,因为Console.Write(..)没有返回值,或

(!Example) ? { a = 1; "Example is false" } : "Example is true"

因为{ a = 1; "Example is false" }不是表达式。

答案 1 :(得分:4)

您可能正在寻找ternary expression

if (thisIsTrue)
   Console.WriteLine("this")
else
   Console.WriteLine("that")

相当于:

Console.WriteLine(thisIsTrue ? "this" : "that") 

答案 2 :(得分:1)

Console.Write(Example?"Example is true":"Example is false");

甚至

Console.Write("Example is " + (Example?"True":"False"));

答案 3 :(得分:1)

原谅我的空气密码,我正在使用平板电脑。

您可以使用三元运算符(https://msdn.microsoft.com/en-us/library/ty67wk28.aspx)执行所需操作,如下所示...

Console.Write(!Example?"Example is false":"Example is true");

基本上,这就像一个内联&#34;如果&#34;声明。如果问号前面的部分为真,那么你得到问号和冒号之间的位。如果为false,则在冒号后得到一点。

如果这没有意义,请回帖,我会尝试在真实计算机上提供更清晰的示例。