这是我编程存在的祸根。部署应用程序后,当出现此错误时,再多的调试转储也不会告诉您什么对象未实例化。我有调用堆栈,这很好,它告诉我对象的大致位置,但是有什么方法可以让 .NET 告诉我对象的实际名称吗?
如果您在调试时捕捉到它们,程序当然会在有问题的生物上中断,但如果它发生在程序处于野外状态之后,那么祝您好运。
一定有办法的。
我已经研究了这些实例中返回的异常,但没有任何帮助。
最佳答案
不,这不可能。发生异常是因为引用为空,并且引用没有名称。变量和类/结构成员有名称,但不确定引用是否存储在其中任何一个中。例如,可以像这样创建引用:
someObject.GetInstance().DoSomething();
如果 GetInstance
方法返回 null,当您尝试使用该引用调用 DoSomething
时会出现 null 引用异常。引用只是方法的返回值,它没有存储在变量中,因此无法从中获取名称。
如果您在编译的程序集中有调试信息,您将在异常的堆栈跟踪中得到行号,但这是您能得到的最接近的。
关于c# - 对象引用未设置到对象的实例 - 如何在异常中找到有问题的对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656288/