在C#三元运算符中调用函数
为什么这段代码无效? 很确定它在C / C ++中是合法的
伪代码:
String s = Console.ReadLine(); int x = 0; Int32.TryParse(s, out x) ? Console.WriteLine("Foo") : Console.WriteLine("bar");
三元运算符用于返回值,必须分配这些值。
如果要在三元运算符中调用void方法,可以使用如下代理:
String s = Console.ReadLine(); int x = 0; (Int32.TryParse(s, out x) ? new Action(() => Console.WriteLine("Foo")) : () => Console.WriteLine("bar"))();
console.writeline return void ..条件运算符(?:)根据布尔表达式的值返回两个值中的一个
MSDN
正如这里所讨论的,在C#中,并非每个表达式都可以用作语句。