« [わんくま同盟 東京勉強会] 12/20 新宿で会いましょう | トップページ | 地デジ完全移行に黄色信号 »

2008年12月 2日 (火)

[C#] ?? 演算子と GetValueOrDefault() メソッド

どっちも同じようなコトに使います。 つまり、 変数が null だったときの値を指定してやる、 という…

[TestMethod]
public void GetValueOrDefaultTest()
{
    int? x = 3;
    Assert.AreEqual<int>(3, x.GetValueOrDefault(-1));
    Assert.AreEqual<int>(3, x ?? -1);

    int? y = null;
    Assert.AreEqual<int>(-1, y.GetValueOrDefault(-1));
    Assert.AreEqual<int>(-1, y ?? -1);
}

おんなじようなもんだから、 どっちを使うか好みで決めちゃえばいいか~、 …と軽く考えていたんですが。 なんたるおバカ。 演算子はオブジェクトに使えるのに対して、  GetValueOrDefault() メソッドは Nullable<T> 型だけが持っているメソッドなんですね。
つまり…

string s = null;
//Assert.AreEqual<string>("(null)", s.GetValueOrDefault("(null)")); ← コンパイルエラー
Assert.AreEqual<string>("(null)", s ?? "(null)");

…ということ。 f(^^;

|

« [わんくま同盟 東京勉強会] 12/20 新宿で会いましょう | トップページ | 地デジ完全移行に黄色信号 »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/43298354

この記事へのトラックバック一覧です: [C#] ?? 演算子と GetValueOrDefault() メソッド:

« [わんくま同盟 東京勉強会] 12/20 新宿で会いましょう | トップページ | 地デジ完全移行に黄色信号 »