次のメソッドを、任意の参照型で機能するジェネリック メソッドに変換する方法:
public string CheckNull(string value, string defaultvalue)
{
return (value == null) ? defaultvalue : value;
}
次のようなものを使用できます。
public T CheckNull<T> (T value, T defaultValue)
where T : class
{
return value ?? defaultValue;
}
ただし、通常は、 null 合体演算子をメソッドでラップするのではなく、直接使用するのが理にかなっています。
編集
あなたのコメントを参照して、既にフレームワークに組み込まれている何かを行うためのコードをさらに書いています。
public void Foo (Bar bar)
{
var myBaz = bar.Baz ?? new Baz ();
}
これは、上記のすべての追加コードと同じことを行います。
public void Foo (Bar bar)
{
var myBaz = CheckNull (bar.Baz, new Baz ());
}
ノーリターンでより多くのタイピング。
汎用関数の代わりにNull 合体演算子を探します。