小编Waj*_*han的帖子

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

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

我得到例外:

If(userLoginModel.UserId>0)
{
//do something
}
else{
//do something
}
Run Code Online (Sandbox Code Playgroud)

例外:{"对象引用未设置为对象的实例."}

是的它是空的; 但如果写:

if (userLoginReturnModel != null && userLoginReturnModel.UserId >0)
{
//do something
}
else
{
//do something
}
Run Code Online (Sandbox Code Playgroud)

此代码没有抛出任何异常.

注意:我的问题是为什么编译器没有在第二个代码上抛出任何异常,因为如果存在&& condition,当编译器检查userLoginReturnModel.userId> 0时,那么这也需要抛出异常,因为object为null.而且我们知道两种情况都会被检入.任何答案都有很好的解释.

c# exception-handling compiler-errors nullreferenceexception

0
推荐指数
1
解决办法
48
查看次数