Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 Visual Studio:如何查找对函数的所有调用_Visual Studio 2012 - Fatal编程技术网

Visual studio 2012 Visual Studio:如何查找对函数的所有调用

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

下面有两个对函数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 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路径中的框架文件。这个功能是完全无用的。