我对 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 的调用堆栈窗口:
向下看可以看到这个窗口:
现在,您可以单击调用堆栈中的任何方法调用,查看谁调用了该方法以及它传递给它的参数。
关于c# - 如果方法是运算符,如何找到调用 C# 类方法的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133914/