我试图扩展“对象”以允许更可读的检查对象是否为空。
现在,object.ReferenceEquals
真正检查一个空对象,(它不会应用的罕见情况是因为操作符==
可以被覆盖。该object.Equals(null)
方法也可以被覆盖)。
但是object.ReferenceEquals(null, obj);
它不太可读是吗?...所以,我想,为什么不写一个扩展方法来System.object
提供该检查使用object.IsNull(obj);
我试过了:
public static class MyExtClass
{
// the "IsNull" extension to "object"
public static bool IsNull(this object obj)
{
return object.ReferenceEquals(obj, null);
}
}
public SomeOtherClass
{
public static void TryUsingTheExtension()
{
object obj;
// Why does this line fail? the extension method is not recognized
// I get: 'object' does not contain a definition for "IsNull"
bool itIsANull = object.IsNull(obj);
}
}
我错过了什么?