C# if then else shorthand 无法编译
C# if then else shorthand won't compile
以下编译成功:
if (_logon.LogonToConnector())
{
MessageBox.Show("Logon Success");
}
else
{
MessageBox.Show("Logon Failed");
}
但对于更简洁的等价物:
_logon.LogonToConnector() ? MessageBox.Show("Logon Success") : MessageBox.Show("Logon Failure");
编译器报错:
Only assignment, call, increment, decrement, and new object expressions can be used as a statement UniformTestClient
我哪里错了?
放
MessageBox.Show(_logon.LogonToConnector()
? "Logon Success"
: "Logon Failed");
因为三元运算符 必须 return 一个值。
三元运算符 returns 基于 true/false 的值,必须分配。您不能用这种方式缩短 if/else 语句。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
你可以这样做
string message = _logon.LogonToConnector() ? "Logon Success" : "Logon failed";
MessageBox.Show(message);
以下编译成功:
if (_logon.LogonToConnector())
{
MessageBox.Show("Logon Success");
}
else
{
MessageBox.Show("Logon Failed");
}
但对于更简洁的等价物:
_logon.LogonToConnector() ? MessageBox.Show("Logon Success") : MessageBox.Show("Logon Failure");
编译器报错:
Only assignment, call, increment, decrement, and new object expressions can be used as a statement UniformTestClient
我哪里错了?
放
MessageBox.Show(_logon.LogonToConnector()
? "Logon Success"
: "Logon Failed");
因为三元运算符 必须 return 一个值。
三元运算符 returns 基于 true/false 的值,必须分配。您不能用这种方式缩短 if/else 语句。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
你可以这样做
string message = _logon.LogonToConnector() ? "Logon Success" : "Logon failed";
MessageBox.Show(message);