有什么区别:
if (myObject != null && myObject.someint == 0)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
和
if (myObject != null)
{
if (myObject.someint == 0)
{
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我一直认为它会评估第一个条件,如果为false,它会跳过第二个条件的评估.但是我在null-reference的运行时遇到错误.myObject是空的,它试图检查myObject.someint
该对象可以在外部进行修改,是否检查了对象存在的第一个条件,但是当它进入下一个条件时,有什么东西杀死了myObject中的引用?
如果是后者,任何避免的方法(在我看来,上述两种方式都做了if检查都是一样的).只有我可以想象的是try/catch
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |