[.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(^^;
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント