[.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(^^;
| 固定リンク
| コメント (0)
| トラックバック (0)