gpt4 book ai didi

c# - 短路运算符

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:01 25 4
gpt4 key购买 nike

我开始学习C#,在阅读逻辑运算符时,我发现:

|| operator 表示逻辑运算符,如果表达式 1 为 TRUE,则不评估表达式 2。我对这个例子很好奇:

int x = 5, y = 10;
bool result;

result = (x == 3) || (y != 5);
label12.Text = result.ToString();

如果我们已经知道X的值为5,那么结果(x==3)怎么会返回true呢??因为在这种情况下左侧运算符返回 TRUE。但是怎么办?? X =5 应该是 X ==5???我误会了什么??谁能用几句话向我解释一下??

非常感谢并提前致谢

最佳答案

短路操作意味着这里

result = (x == 3) || (y != 5);
如果 x == 3 已经为真,则

y != 5 部分将不会被评估。基本上是因为没有这个必要——我们已经知道整个表达式是真的。

但是,如果 x 为 5,则两个表达式都将被计算,因为我们仍然不知道 x == 3 之后的完整结果。

更新。也许这个例子的目的会更清楚。考虑以下当然是简化的代码:

var someObj = SomeOperation();
if (someObj != null && someObj.IsActive)

如果 SomeOperation() 返回 null 会发生什么?如果不是对这个逻辑语句进行短路求值,这段代码会抛出NullReferenceException。但是,如果 someObj 为 null,则不会调用 IsActive 调用。

关于c# - 短路运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22638434/

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