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
C# 查找对子方法的所有引用_C#_Visual Studio 2012 - Fatal编程技术网

C# 查找对子方法的所有引用

C# 查找对子方法的所有引用,c#,visual-studio-2012,C#,Visual Studio 2012,我想在程序集中查找对DateTime.ToString引用的所有调用。在Visual Studio中,您可以通过右键单击ToString“查找所有引用”;但是,这将返回所有类对ToString的所有引用,而不仅仅是DateTime 由于以下示例,定期搜索DateTime.ToString将不起作用: DateTime myDate = new DateTime(); myDate.ToString(); 有什么建议吗?这个商业工具在这方面真的很好:它可以让您找到哪些程序集/类/方法使用特定的程

我想在程序集中查找对
DateTime.ToString
引用的所有调用。在Visual Studio中,您可以通过右键单击
ToString
“查找所有引用”;但是,这将返回所有类对
ToString
的所有引用,而不仅仅是
DateTime

由于以下示例,定期搜索
DateTime.ToString
将不起作用:

DateTime myDate = new DateTime();
myDate.ToString();
有什么建议吗?

这个商业工具在这方面真的很好:它可以让您找到哪些程序集/类/方法使用特定的程序集/类/方法


它可能不便宜,但是如果你有一个大的代码库——特别是有几个程序集——它会非常有效

您应该使用ReSharper

步骤:

  • (试用版适用于您)
  • 在Visual Studio中打开项目/解决方案
  • 查找ToString()的用法,如
    myDate.ToString()
  • 右键单击
    ToString
    token
  • 选择
    Find Usages Advanced…
    菜单项
  • 在窗口中的相应框上打勾,如下面的屏幕截图所示,然后单击
    Find
  • 利润

  • 在VisualStudio中,这似乎是不可能的,尽管resharper可以

    在resharper中的“查找高级用法”窗口中,您可以筛选出要查找的类型。您可以指定派生较少或派生较多

    因此,在这种情况下,您只能筛选出
    DateTime
    ,或所有
    ValueType
    System.Object


    在这种情况下,我想VisualStudio帮不上忙,但我还是想和大家分享一些技巧

    例如:如果您想查找
    Person
    类的
    PropertyChanged
    事件的所有引用,假设Person实现了
    INotifyPropertyChanged
    ,您将获得大量引用,因为有许多类实现了
    INotifyPropertyChanged

    您可以做的是,只需转到
    Person
    类并注释掉
    INotifyPropertyChanged
    接口的实现。然后在VisualStudio中查找所有引用将只告诉您
    Person
    类的引用。并非所有类型


    至少我希望这个技巧可以在其他地方有所帮助,如果不是现在的话。

    在VS2015中,当您尝试查找覆盖方法的引用时,您可以将它们按类型分组
    结果如下:


    在Visual Studio 2019中,右键单击所需的方法名称,然后单击“查看调用层次结构”。Visual Studio底部(默认情况下)会出现一个“调用层次结构”窗口。在左窗格中,您将看到调用该方法的项目的树表示。在每个项目中,第一项是“调用[MethodName]”。展开第一项以获得方法列表。单击每个方法将更改“调用层次结构”窗口的右窗格,以显示调用该方法的行。双击这些行以转到它们并分别对它们进行寻址。

    @Sajeetharan这有什么帮助?这将使每个对“ToString”的调用不仅仅在DateTime内。你能解释一下吗?在“DateTime.ToString”上用FindAll怎么样?或者你想在DateTime的任何实例上用FindAll吗。这将更加困难。这对下一行的“DateTime myDate=…”不起作用。“myDate.ToString()”这是个好问题,这有点棘手……如果你使用resharper,就会有一个“Find Usages Advanced”(查找Usages Advanced)这样的功能。resharper可能会付钱给微软不实现这一基本功能。所以它们仍然可以存在。嗨-你有没有设法获得特定枚举的特定ToString调用?我看到它在“System.Enum”“toString”和它的基-System.ValueType.toString之间被定义。。。