如果在ent.column
为空的情况下使用第一条if语句检查两个数据的相等性,则会出现错误:
对象引用未设置为对象的实例。
当我使用第二个if语句和args.column
为null来检查两个数据的相等性时,一切正常。对不起,不好解释,这是我第一次使用stackoverflow。
myTable ent;//this comes from db;
myclass args// this comes from view;
//gives error
if(ent.column.Equals(args.column)){
//some code
}
//successfully check
if(args.column.Equals(ent.column)){
//some code
}
答案 0 :(得分:0)
基本上:
myObject.NonNullProperty.Equals(null); // works ...
...因为a)我可以在该属性上调用Equals(不为null),并且b)Equals接受null
而不会引发异常。
myObject.NullProperty.Equals(anotherObject); // fails ...
...因为(鉴于NullProperty
为null
),如果没有任何对象的实例,则您无法调用实例方法(此处为“ Equals”)。
可能的解决方法:
if( myObject.MayBeNullProp != null && // stops evaluating here if false
theOtherObject.MayBeNullProp != null && // stops evaluating here if false
myObject.MayBeNullProp.Equals(theOtherObject.MayBeNullProp) )
{
// Executed if both are != null and equal
}