我想在visual studio中找到对某些类的所有引用,但忽略了使用var定义的实例。
有没有办法解决这个问题?
这里我使用SHIFT + F12来获取参考资料
结果是:
我得到了我想要的东西
答案 0 :(得分:2)
此时,VS 2015、2017和2019的内置查找所有引用搜索以及Resharper的查找用法和< em>查找高级用法搜索选项。这也是预期的行为。
只有在您显式调用构造函数时,才在搜索结果中返回var
引用。此外,当调用方法并将其返回到已明确声明为给定类型的变量时,该行还将在搜索结果中返回。
就个人而言,我仅在明显返回并分配给变量的情况下才使用var
,通常仅在直接调用构造函数时才使用。在声明一个名称长且不方便的类时,这也很方便,避免了必须两次键入该类型:
Dictionary<string, Ninja> trainees = new Dictionary<string, Ninja>();
以下是一个小程序的示例,该示例演示查找所有引用将在哪里找到结果,
using System;
namespace VarSearchTest
{
class Program
{
static void Main(string[] args)
{
var ninja = NinjaAcademy.Train(); // <---------- does not find (implicit)
Ninja ninja2 = NinjaAcademy.Train(); // <---------- finds (explicit type declaration)
var chrisFarley = new Ninja(); // <---------- finds (explicit constructor call)
Console.WriteLine(ninja.Hide());
Console.WriteLine(ninja2.Hide());
Console.WriteLine(chrisFarley.Hide());
}
}
public class Ninja // <-------------------- Find all references/usages
{
public string Hide()
{
return "Puff of smoke...";
}
}
public static class NinjaAcademy
{
public static Ninja Train() // <---------------- finds (explicit return type)
{
return new Ninja(); // <------------------ finds (explicit constructor call)
}
}
}
您还可以跟踪this github issue,以防将来发生变化,因为容易找到隐式引用会很方便。同时,请考虑仅在明显情况下提供方便的情况下使用var
。