C# 与空对象不相关的空引用异常

C# 与空对象不相关的空引用异常,c#,nullreferenceexception,C#,Nullreferenceexception,我很困惑(这很容易!)。我有一小段代码,我已经截图了 文件路径测试失败后会出现NRE。没有什么是空的。SceneryAreas对象在测试之前初始化。然而(我的截图并没有显示出来),似乎在SceneryAreas.Clear()行中;SceneryAreas为空。是否有可能错误显示在错误的行上,甚至更严重,实例化的对象在这一点上怎么会变为null 非常感谢您的建议-我以前从未见过这种情况。您的源代码或符号文件与编译的代码不同步,因此调试器高亮显示了错误的行 如果重新编译并重新运行,则源代码中导致

我很困惑(这很容易!)。我有一小段代码,我已经截图了

文件路径测试失败后会出现NRE。没有什么是空的。SceneryAreas对象在测试之前初始化。然而(我的截图并没有显示出来),似乎在SceneryAreas.Clear()行中;SceneryAreas为空。是否有可能错误显示在错误的行上,甚至更严重,实例化的对象在这一点上怎么会变为null


非常感谢您的建议-我以前从未见过这种情况。

您的源代码或符号文件与编译的代码不同步,因此调试器高亮显示了错误的行


如果重新编译并重新运行,则源代码中导致问题的行将中断。

可能是错误的行显示了错误。请尝试重新生成项目,以确保源文件与正在调试的代码同步。此外,请检查“查看详细信息”下的堆栈跟踪。。。查看引发异常的确切位置。

正如其他人所说,该文件与用于构建程序集的文件不一致。检查此问题的最简单方法是尝试在文件上设置断点,您将看到一个红色圆圈,表示该文件与构建的文件不同

使用“查看详细信息”-检查堆栈跟踪-异常实际起源于何处?异常清楚地表明
FilePath
为空。@Ramhound,这不会引起错误-您是对的。出于某些原因,VS2010没有使用最新的代码行编译包含此代码的库。因此,用于实例化SceneryAreas的行实际上并不存在。请检查构建配置并确保库设置为build。此外,如果您从可执行项目引用此库,请检查您是否创建了项目引用,而不仅仅是对已编译DLL的引用。项目引用在VS中正确设置依赖项,以便对源代码的更改触发重建。