-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;
}

ただし、通常は、 null 合体演算子をメソッドでラップするのではなく、直接使用するのが理にかなっています。

編集

あなたのコメントを参照して、既にフレームワークに組み込まれている何かを行うためのコードをさらに書いています。

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 合体演算子を探します。

于 2012-10-24T19:27:47.083 に答える