如何制作IsNull()方法

时间:2012-11-06 18:23:03

标签: c# isnull

我正在尝试创建一个类似于.ToString()的方法来检查对象是否为null。我刚刚知道如何在不调用类

的情况下使其可访问
public class ObjectExtensions
{
    public static bool IsNull(object obj)
    {
        bool val = false;
        if (obj == null)
        { val = true; }
        return val;
    }
}

4 个答案:

答案 0 :(得分:10)

您错过了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);

答案 1 :(得分:2)

您的类需要是静态的,并且在扩展变量类型之前需要“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;
    }
}

这是指向Extension Methods

的MSDN条目的链接

答案 2 :(得分:1)

您认为需要静态方法是正确的。这是避免空值的空指针异常的唯一方法。你可以使用扩展方法伪造它:

public static class ObjectExtensions
{
    public static bool IsNull(this object obj)
    {
        return obj == null;
    }
}

另请注意,您的实施虽然有效,但过于复杂。您不需要超过一行来实现它。

答案 3 :(得分:1)

public static class ObjectExtensions
{
    public static bool IsNull(this object obj)
    {
        return obj == null;
    }
}