C# 如何在重新映射对象期间捕获空值/错误?
我想重新映射对象C# 如何在重新映射对象期间捕获空值/错误?,c#,debugging,C#,Debugging,我想重新映射对象 var objDTO = new objDTO { prop1 = actualOBJ.prop1, prop2 = actualOBJ.prop2, prop3 = actualOBJ.prop3 } 例如,prop3为null,并引发了NullReferenceException 我如何提取有关抛出了哪个属性NullReferenceException的信息 此外: 正在将objDTO的所有属性标记为可空 公共类型?建议1 公共类型?建议2 公共类型?建议
var objDTO = new objDTO
{
prop1 = actualOBJ.prop1,
prop2 = actualOBJ.prop2,
prop3 = actualOBJ.prop3
}
例如,prop3为null,并引发了NullReferenceException
我如何提取有关抛出了哪个属性NullReferenceException
的信息
此外:
正在将objDTO的所有属性标记为可空
公共类型?建议1
公共类型?建议2
公共类型?建议3
处理此问题的好方法?在创建objDto的行上放置一个断点(F9),并使用VS调试器运行程序。然后,您将能够检查当前堆栈帧中使用的所有局部变量,以找到一个为null的变量
举个简单的例子:
我认为是ActualLobj变量为空。您将需要使用调试器。它将准确地向您显示引发异常的行,您可以检查所有变量的值。@ChristophLütjen好吧,如果我以这种方式创建对象,那么调试器只会跳过初始化,同时这样做:
var objDTO=new objDTO()
=>objDTO.prop1=actualOBJ.prop1
将显示一个问题。我只是想知道是否有可能知道第一种方法的问题在哪里,但我可以使用第二种方法:波普,我想你可能没有理解克里斯托夫的观点。即使所有属性都为null,也不会得到NullReferenceException——将null指定给属性是完全合法的。空引用可能是对象本身,actuallobj
。