有没有办法在函数参数中添加if语句?例如:
var root = JsonConvert.DeserializeObject<RootObject>(jsonString);
var obj = root.body;
答案 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_true
和value_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,则在冒号后得到一点。
如果这没有意义,请回帖,我会尝试在真实计算机上提供更清晰的示例。