如何创建适用于任何引用类型的方法?

时间:2012-10-24 19:23:01

标签: c# asp.net

如何将以下方法转换为适用于任何引用类型的泛型方法:

public string CheckNull(string value, string defaultvalue)
{ 
    return (value == null) ? defaultvalue : value; 
} 

2 个答案:

答案 0 :(得分:5)

您可以使用以下内容:

public T CheckNull<T> (T value, T defaultValue)
    where T : class
{
    return value ?? defaultValue;
}

虽然,直接使用null-coalescing operator而不是将其包装在方法中通常是有意义的。

修改

在参考您的评论时,您正在编写更多代码来执行已构建到框架中的内容。

public void Foo (Bar bar)
{
    var myBaz = bar.Baz ?? new Baz ();
}

这与我上面的所有额外代码完全相同:

public void Foo (Bar bar)
{
    var myBaz = CheckNull (bar.Baz, new Baz ());
}

更多打字没有回报。

答案 1 :(得分:0)

寻找Null Coalescing Operator而非通用功能。