新しいアプリケーションの 1 つに取り組んでいたとき、ばかげた間違いを犯しました… オブジェクト初期化子内に「new ClassName」と書くのを忘れていました。不思議なことに、VS はコードをコンパイルしただけで、エラーや警告はありませんでした。(VS 2015、.Net 4.5.2を使用しました)
私のコード:
var target = new MyClass
{
MyValues = new List<MyOtherClass>
{
new MyOtherClass
{
Start = new DateTimeValue
{
DateTime = new DateTime(2015, 08, 23)
},
End = {
DateTime = new DateTime(2015, 08, 23)
}
}
}
};
(Start と End はどちらも DateTimeValue 型です)
アプリケーションを起動すると、このコードが NullReferenceException をスローしました。(「新しいDateTimeValue」を追加すると問題が修正されました)。コンパイラからエラーが発生しなかったのはなぜですか?