我正在尝试创建一个类似于 .ToString() 的方法来检查对象是否为空。我刚刚知道如何在不调用类的情况下使其可访问
public class ObjectExtensions
{
public static bool IsNull(object obj)
{
bool val = false;
if (obj == null)
{ val = true; }
return val;
}
}
您缺少this
修饰符以使其成为真正的扩展方法以及使对象成为静态对象。
public static class ObjectExtensions
{
public static bool IsNull(this object obj)
{
return obj == null;
}
}
然后你可以这样称呼它:
var fooIsNull = foo.IsNull();
// which is syntactic sugar for
fooIsNull = ObjectExtensions.IsNull(foo);
您的类需要是静态的,并且在扩展变量类型之前需要“this”关键字:
public static class ObjectExtensions
{
public static bool IsNull(this object obj)
{
bool val = false;
if (obj == null)
{ val = true; }
return val;
}
}
此外,当您进行一次布尔检查时,您可以直接返回它的结果:
public static class ObjectExtensions
{
public static bool IsNull(this object obj)
{
return obj == null;
}
}
这里是扩展方法的 MSDN 条目的链接
你认为你需要一个静态方法是正确的。这是避免空值出现空指针异常的唯一方法。您可以使用扩展方法伪造它:
public static class ObjectExtensions
{
public static bool IsNull(this object obj)
{
return obj == null;
}
}
另请注意,您的实现虽然有效,但过于复杂。您只需要一行就可以实现这一点。
public static class ObjectExtensions
{
public static bool IsNull(this object obj)
{
return obj == null;
}
}