在下面的两个示例代码中,我尝试使用C#normal方法和Object初始化程序实例化一个名为 Test 的类。
DateTime? nullDate = null; //this value will come from somewhere else
DateTime? notNullDate = DateTime.Now;
var test = new Test();
test.Date = nullDate.Value; //exception will throw here
test.Name = "String";
test.AnotherDate = notNullDate.Value;
在上面的示例代码中,我可以清楚地了解调试时哪个属性显示异常。
DateTime? nullDate = null; //this value will come from somewhere else
DateTime? notNullDate = DateTime.Now;
var test = new Test
{
Date = nullDate.Value,
Name = "String",
AnotherDate = notNullDate.Value
};
在上面的代码中,当我使用对象初始化程序时,我无法理解哪个属性被抛出异常。在这里,我无法逐行调试。如果我初始化了许多属性,那么很难识别。
以下是我的问题:如何识别哪个属性在异常窗口中显示异常?现在,内部异常为空。
答案 0 :(得分:0)
对象初始值设定项应该用于简单初始化。如果你有一个抛出异常的代码,你将遇到问题。
我知道这不是一个真正的答案,但你不会知道哪个属性失败了。 如果是nullables,你可以使用这样的东西,你指定默认值。
var test = new Test
{
Date = nullDate.GetValueOrDefault(new DateTime()),
Name = "String",
AnotherDate = notNullDate.Value
};