N#或Null的C#扩展方法

时间:2010-10-21 13:34:56

标签: c# extension-methods

如果对象为null,那么如何编写应该检查对象值的扩展方法 它应该返回null否则为值{不在接收端进行转换}。

类似......

public static object GetDefault(this object obj)
{
    if (obj == null) return null;
    else return obj;
}

我的意思是没有施法可以检查是否为空?

int? a=a.GetDefault();

ContactType type=type.GetDefault();   [For EnumType]

string  s=a.GetDefault()

1 个答案:

答案 0 :(得分:1)

这应该有效:

public static class ExtensionMethods
{
    public static T GetObject<T>(this T obj, T def)
    {
        if (default(T).Equals(obj))
            return def;
        else
            return obj;
    }
}

我添加了一个参数def因为我希望你想在obj为null时返回这个默认值。否则,您始终可以省略T def参数并返回null