Waj*_*han 0 c# exception-handling compiler-errors nullreferenceexception
今天大家好,我正在努力制作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.而且我们知道两种情况都会被检入.任何答案都有很好的解释.
的情况下:
if (userLoginReturnModel != null && userLoginReturnModel.UserId >0)
Run Code Online (Sandbox Code Playgroud)
如果第一个条件为假,则不检查next(因为没有必要这样做 - false &&任何给出false).
熟悉|| - 如果first为true则不检查next(不需要 - true || any give true).
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |