-1

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

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

2 回答 2

5

你可以使用类似的东西:

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

虽然,直接使用空合并运算符而不是将其包装在方法中通常是有意义的。

编辑

参考您的评论,您正在编写更多代码来执行已经内置到框架中的操作。

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

这将与我上面的所有额外代码做同样的事情:

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

更多的打字没有回报。

于 2012-10-24T19:25:02.390 回答
0

寻找Null Coalescing Operator而不是泛型函数。

于 2012-10-24T19:27:47.083 回答