gpt4 book ai didi

c# - 我想了解 AND (&&) 运行时异常

转载 作者:行者123 更新时间:2023-12-02 10:49:06 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Usage of '&' versus '&&'

(4 个回答)



What is a NullReferenceException, and how do I fix it?

(27 个回答)


3年前关闭。




大家好,今天我正在制作 API。当我看到 C# 编译器的不同行为时,我感到很困惑。让我解释:

我得到异常(exception):

If(userLoginModel.UserId>0)
{
//do something
}
else{
//do something
}

异常(exception):{“对象引用未设置为对象的实例。”}

是的,它是空的;
但如果写:
if (userLoginReturnModel != null && userLoginReturnModel.UserId >0)
{
//do something
}
else
{
//do something
}

这段代码没有抛出任何异常。

注意:我的问题是为什么编译器不会在第二个代码上抛出任何异常,因为如果存在 && 条件,那么当编译器检查 userLoginReturnModel.userId > 0 时,这也需要抛出异常,因为对象为空。正如我们所知,这两个条件都将在 if 中进行检查。任何有很好解释的答案。

最佳答案

的情况下:

if (userLoginReturnModel != null && userLoginReturnModel.UserId >0)

如果第一个条件为假,则不检查下一个(因为没有必要这样做 - 假 && 任何东西都会给出假)。

类似于 || - 如果第一个为真,则不检查下一个(不需要 - 真 || 任何东西都为真)。

关于c# - 我想了解 AND (&&) 运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124057/

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