如何将以下方法转换为适用于任何引用类型的泛型方法:
public string CheckNull(string value, string defaultvalue)
{
return (value == null) ? defaultvalue : value;
}
答案 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而非通用功能。