gpt4 book ai didi

c# - c# 中的两个 if 语句有区别吗

转载 作者:行者123 更新时间:2023-12-02 01:19:26 27 4
gpt4 key购买 nike

两者之间有区别吗:

 if (myObject != null && myObject.someint == 0)
{
// do something
}

if (myObject != null)
{
if (myObject.someint == 0)
{
// do something
}
}

我一直认为它会评估第一个条件,如果为假,它会跳过第二个条件的评估。但是我在空引用运行时遇到错误。 myObject 为 null,它正在尝试检查 myObject.someint

该对象可以从外部修改,是否是这样的情况:当它检查第一个条件时对象存在,但当它继续到下一个条件时,某些东西杀死了 myObject 中的引用?

如果是后者,有什么方法可以避免(b/c 在我看来,上述两种进行 if 检查的方法都是相同的)。我能想象的唯一可能是try/catch

最佳答案

这一定是后一个条件,因为 && 在 false 上短路。使用

lock(myObject)

关于c# - c# 中的两个 if 语句有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9138517/

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