当我犯了一个愚蠢的错误时,我正在开发我们的一个新应用程序……我忘了在对象初始化程序中写:“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)
}
}
}
};
(开始和结束都是 DateTimeValue 类型)
当我启动应用程序时,这段代码抛出了 NullReferenceException。(添加“new DateTimeValue”解决了这个问题)。为什么编译器没有错误?