在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#中,并非每个表达式都可以用作语句。