Visual studio 2012 Visual Studio:如何查找对函数的所有调用
下面有两个对函数B:Bla的调用,但是查看调用层次结构(Cntl-K Cntl-T),然后对A:Bla和B:Bla中的每一个调用“calls to”,就会得出一个调用将被调用到A,一个调用将被调用到B 我正在处理一个非常大的代码库,有时我需要对一个函数的所有调用,但我不想为继承链中的每个函数单击“调用”。因此,对于下面的示例,我希望“Calls to”返回两个调用,而不管我是在A:Bla还是B:Bla上调用它Visual studio 2012 Visual Studio:如何查找对函数的所有调用,visual-studio-2012,Visual Studio 2012,下面有两个对函数B:Bla的调用,但是查看调用层次结构(Cntl-K Cntl-T),然后对A:Bla和B:Bla中的每一个调用“calls to”,就会得出一个调用将被调用到A,一个调用将被调用到B 我正在处理一个非常大的代码库,有时我需要对一个函数的所有调用,但我不想为继承链中的每个函数单击“调用”。因此,对于下面的示例,我希望“Calls to”返回两个调用,而不管我是在A:Bla还是B:Bla上调用它 using System; class A { public virtual
using System;
class A
{
public virtual int Bla() {
return 65;
}
}
class B : A
{
public override int Bla()
{
return 66;
}
int Helper()
{
return this.Bla();
}
static void Main()
{
A obj = new B();
Console.WriteLine(obj.Bla());
Console.Read();
}
}
您可以使用“查找所有引用”功能,突出显示有问题的方法并按Ctrl+F12,或者右键单击并选择“查找所有引用” 这将在“查找符号结果”窗口中显示结果
有关更多详细信息,请参阅此链接 在Visual Studio 2015中,在标准键盘映射上尝试查看|调用层次结构或
Ctrl+Alt+K
。这将生成一个包含“调用”和“调用自”子树的树
不幸的是,与Eclipse CDT不同,此调用图似乎没有索引。如果有人在这里找到了使用VS代码的方法:
- 突出显示方法并使用shift+
,或F12
- 右键单击某个方法并选择“查找所有引用”
- 查找所有引用:Shift+Alt+F12
- 查看参考:Shift+F12
在“两种”情况下都使用Windows版本1.31.1?我只看到对
Bla
进行了一次调用。看到这个.Bla()和obj.Bla()调用没有被执行,但它仍然存在……静态代码分析工具无法可靠地确定将调用哪个虚拟方法。这是virtual关键字的一个特性,而不是工具中的一个bug。从您当地的图书馆查阅任何有关OOP的书籍,以获得见解。@HansPassant我知道。。。我要求所有的可能性。例如,对每个祖先和子代进行“调用层次”的“调用到”的联合。查找所有引用将返回比预期更多的信息。它返回所有引用。。。包括函数的重写和父定义。对于我(VS2015中的C++项目),它还返回完全不相关的伪标识符,仅基于字符串相等!甚至注释中的字符串,包括include路径中的框架文件。这个功能是完全无用的。