C# Visual Studio调试中的Null引用异常

C# Visual Studio调试中的Null引用异常,c#,visual-studio,debugging,C#,Visual Studio,Debugging,我正在尝试测试一些代码,现在visual studio在以下行中抛出空引用异常: List<int> liveIds = new List<int>(); List liveIds=new List(); 我开始认为VisualStudio有它正在查看的旧代码,因为无论我如何尝试声明这一行,它仍然会在这一行上抛出null引用异常 有人知道我可能遗漏了什么吗 更新: 好的,我改变了变量,现在我不能在前一行中得到同样的错误。现在它正在这条线上发生 好的,在一些测试之后,在

我正在尝试测试一些代码,现在visual studio在以下行中抛出空引用异常:

List<int> liveIds = new List<int>();
List liveIds=new List();
我开始认为VisualStudio有它正在查看的旧代码,因为无论我如何尝试声明这一行,它仍然会在这一行上抛出null引用异常

有人知道我可能遗漏了什么吗

更新: 好的,我改变了变量,现在我不能在前一行中得到同样的错误。现在它正在这条线上发生


好的,在一些测试之后,在我重构代码并将以下代码提取到一个新方法中后,一切都正常了:

        // remove hospitals that are not currently assigned to someone
        hospitalsToCheck.RemoveAll(
            h =>
            {
                return
                    !currentAssignments.Exists(
                        a => a.AssignmentGroup.AssignedUnitIds.Intersect(h.Units.Select(u => u.UnitId)).Any());
            });

似乎当我有代码以定义列表的相同方法操作列表时,也就是当我得到null引用异常时

可能调试器本身正在生成异常

我遇到了一个非常类似的情况,我从一个函数中赋值,异常在执行该函数后立即发生(Locals窗口指示函数返回值):

从反汇编来看,异常似乎发生在赋值之后,但在下一行代码之前。我猜这就是执行某些调试器代码的地方:


也许调试器并没有期望执行这行代码,因为我用“setnextstatement”命令更改了执行路径(从“else”块移到了这个块)。如果在调试运行时更改代码(删除“if”),也会发生同样的情况,但如果在编辑后重新运行包含过程,则问题不会重复。

上一行中不可能出现NullReferenceException,这一行看起来很好。你能分享其他代码行吗?这就是问题所在。我真的不明白为什么它会给我这个错误。这就是为什么我觉得VS可能正在加载缓存的程序集。我的其他代码可能有错误。您可能已经这样做了,但您是否尝试重新启动VS?你知道有时候VS的行为很奇怪。异常是在依赖项中抛出的,而不是在代码本身中。这可能是该依赖项的配置问题。很高兴知道您找到了真正的原因,如果是,请将其标记为答案?因此,它可以帮助其他遇到与您相同问题的成员。祝你今天愉快:)
var xmlElement = Serialize(data);