c# - 如果方法是运算符,如何找到调用 C# 类方法的代码?

标签 c# .net debugging nullreferenceexception

我对 C# 和 Visual Studio 非常陌生,因此我不知道许多用于调试的技术。

代码在此方法上触发异常:

public static implicit operator T(RangeNode<T> node)
{
    return node.Value;
}

“返回节点.Value;”区域以 NullReferenceException 突出显示,我可以看到传入的“节点”为空。

为了修复它,我需要找到调用代码并查看为什么它传入 null。

通常在 Visual Studio 中,我可以通过单击函数签名上方的“X 引用”帮助器来查看调用它的内容,但它不会出现在该运算符方法中。有什么想法可以找到调用代码吗?

最佳答案

执行程序时,在 public static implicit operator T(RangeNode<T> node) 内放置一个断点并确保您有 Visual Studio 的调用堆栈窗口:

Visual Studio

向下看可以看到这个窗口:

Call Stack Window

现在,您可以单击调用堆栈中的任何方法调用,查看谁调用了该方法以及它传递给它的参数。

关于c# - 如果方法是运算符,如何找到调用 C# 类方法的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133914/

相关文章:

debugging - 关于 R 中函数的 "Dynamic/interactive"调试的建议?

debugging - GoGland 中的调试器配置

.net - Windows上的.NET到Ubuntu上的Mono

c# - 获取阿拉伯月份的英文名称

c# - 我怎样才能在 WinForms 应用程序中捕获所有 'unhandled' 异常?

c# - 从 FormClosing 事件设置属性值

c# - 通过NEST客户端进行 Elasticsearch 中的索引的GetById

c# - 如何在0.5秒内用WPF绘制万点线?

c# - 如何让 CefSharp 使用 vs 公共(public)库中的配置 AnyCPU

c# - 通过循环旋转将值从 AAA 递增到 ZZZ