gpt4 book ai didi

c# - 三元运算符在 C# 中的子表达式中使用 OR

转载 作者:行者123 更新时间:2023-11-30 23:31:48 37 4
gpt4 key购买 nike

我了解三元运算符的标准用法..

string message = hasError=="Y" ? "There's an error!" : "Everything seems fine..."; 

但是我如何在子表达式中添加一个 OR..

if((hasError=="Y")||(seemsfine=="N")){
message="There's an error!";
}else{message="Everything seems fine...";
}

真诚感谢任何帮助

谢谢

最佳答案

你可以这样做

string message = hasError == "Y" || seemsfine == "N" ? "There's an error!" : "Everything seems fine...";

区别不大。这是因为 C# 中的三元运算符非常方便!

最终,重要的是整个表达式的结果(即 hasError == "Y"|| seemsfine == "N"),而不是你有多少条件。如果需要,您也可以设置所有其他条件,只要整个表达式返回 true 然后它将第一个元素(: 的左侧)分配给变量,当整个表达式为 false 它将第二个元素( 的右侧:)分配给变量

三元运算符与 if-else 语句完全等价,其代码块只是为单个变量赋值

因此,

if (a1 == 0 || a2 > 5 || a3 <= -7)
b = 1;
else
b = 2;

完全等同于

b = a1 == 0 || a2 > 5 || a3 <= -7 ? 1 : 2; //note that there is no bracket here, but it is equivalent to if-else statement with bracket

当您有多个要分配的变量时,等效的中断

if (a1 >= 0)
b = 2;
else
c = 3; //notice the variable difference, you cannot use ternary operator anymore.

只要不影响代码的可读性,你甚至可以像这样放多个三元运算符

b = a1 > 0 && a2 < 0 ? 1 : (a3 < 5 ? 2 : 3);

相当于

if (a1 > 0 && a2 < 0)
b = 1;
else if (a3 < 5)
b = 2;
else
b = 3;

关于c# - 三元运算符在 C# 中的子表达式中使用 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472761/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com