在 C# 三元运算符中调用函数
Calling functions in C# ternary operator
为什么此代码无效?很确定它在 C/C++
中是合法的
伪代码:
String s = Console.ReadLine();
int x = 0;
Int32.TryParse(s, out x) ? Console.WriteLine("Foo") : Console.WriteLine("bar");
如 here 所述,在 C# 中,并非每个表达式都可以用作语句。
console.writeline return void.. 条件运算符 (?:) returns 取决于布尔表达式的值的两个值之一
三元运算符用于 return 值,必须分配这些值。
如果你想在三元运算符中调用 void 方法,你可以像这样使用委托:
String s = Console.ReadLine();
int x = 0;
(Int32.TryParse(s, out x) ? new Action(() => Console.WriteLine("Foo")) : () => Console.WriteLine("bar"))();
为什么此代码无效?很确定它在 C/C++
中是合法的伪代码:
String s = Console.ReadLine();
int x = 0;
Int32.TryParse(s, out x) ? Console.WriteLine("Foo") : Console.WriteLine("bar");
如 here 所述,在 C# 中,并非每个表达式都可以用作语句。
console.writeline return void.. 条件运算符 (?:) returns 取决于布尔表达式的值的两个值之一
三元运算符用于 return 值,必须分配这些值。
如果你想在三元运算符中调用 void 方法,你可以像这样使用委托:
String s = Console.ReadLine();
int x = 0;
(Int32.TryParse(s, out x) ? new Action(() => Console.WriteLine("Foo")) : () => Console.WriteLine("bar"))();