gpt4 book ai didi

C# 识别哪个属性导致了 Visual Studio 对象初始化中的空引用异常

转载 作者:行者123 更新时间:2023-12-05 04:41:27 27 4
gpt4 key购买 nike

假设我正在一次初始化一个具有许多属性的新对象。其中之一会导致空引用异常,但是当您使用调试器时,它会立即通过整个代码初始化 block 。有什么简单的方法可以找到导致错误的属性。请注意,对象属性可能有多种类型,因此某些类型允许为空。

前对象初始化

var obj = new Obj{
prop1 = x,
prop2 = y,
prop3 = f,
prop4 = r,
prop5 = h,
prop6 = k,
prop7 = w,
prop8 = l,
prop8 = m,
prop9 = e,
prop10 = a
};

这些属性中的一个导致了空引用异常,但您不知道是哪个属性和调试器一次通过了整个 block 。有没有办法用 visual studio 来识别这个?

最佳答案

在赋值给 obj 时设置断点并打开 Locals 窗口。观察分配给 obj 属性的变量值。除此之外,除了工具提示外,Visual Studio 本身并没有太多内置功能可以在这方面帮助您(我知道或目前可以记忆起)。

这是对象和列表初始化器的最大缺点。如果您要分配给很多属性,那么正如您所观察到的,异常会在初始化 block 的第一行抛出。这令人难以置信烦人,并且会使事情难以追踪。

如果您有幸使用了相当先进的重构插件(如 Resharper 或 CodeRush),则应该进行重构以将对象初始值设定项转换为直接属性赋值,然后再返回。这将允许您将对象初始值设定项转换为属性分配、调试代码以便您可以快速隔离问题陈述、解决它,然后将代码转换回对象初始值设定项。

关于C# 识别哪个属性导致了 Visual Studio 对象初始化中的空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70082996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com