« JVA にとって視聴率はどうでもいい? | トップページ | taspo はどういうデータを送信するのか? »

2008年6月30日 (月)

[.NET] Nullable 型の足し算

int? の足し算をするとどうなるでしょう?

[TestMethod]
public void TestMethod1()
{
  int? a = 10;
  int? b = null;
  int? c = 5;
  Assert.AreEqual<int?>(15, a + b + c);
  // 結果: Assert.AreEqual に失敗しました。<15> が必要ですが、<(なし)> が指定されました。
}

[TestMethod]
public void TestMethod2()
{
  int? a = 10;
  int? b = 20;
  int? c = 5;
  Assert.AreEqual<int?>(35, a + b + c);
  // 結果: 成功
}

ごらんの通りで、 加算する変数に一つでも null が入っていると、 結果も null になります。

また、 これだけでは分かりませんが、 null が出てきた時点で ( あとは、 何を足しても結果は null ですから ) 計算を打ち切るようです。 そのため、 テストカバレッジが 100% にならなくなったりします。

# たしかに MSDN には、 ぱっと見、 記述が無いようだけど。 わからない、 と言ってる間に、 上のテストコードくらい書けちゃうべ f(^^;

|

« JVA にとって視聴率はどうでもいい? | トップページ | taspo はどういうデータを送信するのか? »

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

コメント

コメントを書く



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


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



トラックバック

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

この記事へのトラックバック一覧です: [.NET] Nullable 型の足し算:

« JVA にとって視聴率はどうでもいい? | トップページ | taspo はどういうデータを送信するのか? »