有没有快速的方法来查找接口的方法/属性/等的所有实现,而不是引用?这是一些示例代码:
public class SomeClass : IBaseClass
{
public Int32 GetInt()
{
return 1;
}
}
public interface IBaseClass
{
public Int32 GetInt();
}
public class SomeOtherClass
{
IBaseClass _someClass;
private TestMethod()
{
_someClass = new SomeClass();
_someClass.GetInt();
}
}
我想在查看SomeOtherClass.TestMethod()时快速访问SomeClass.GetInt()。如果我右键单击_someClass.GetInt()并单击“Go To Definition”,它会将我带到界面。如果我单击“查找所有引用”,我可能会看到所有用途的列表......而不仅仅是实现GetInt()方法的类。
有没有更快的方法来找到它?其他开发者的任何提示?我们正在使用D.I.对于我们的大多数依赖项,这意味着遍历深层嵌套代码需要永远。
答案 0 :(得分:111)
由于我不喜欢在编码时使用鼠标,我通常
AFAIK这是在没有ReSharper的情况下找到方法实现的最快方法。
(顺便说一句:您可以使用相同的系统从类方法实现移动到相应的接口声明:只需选择根目录)
答案 1 :(得分:22)
Alt-End将在ReSharper中执行此操作,我相信。
答案 2 :(得分:9)
没有ReSharper,最好的方法是:
在文件中查找(Ctrl + Shift + F) 找到什么:“class * ISomeClass” 查找选项:“使用通配符”
这将找到所有实现,而不是在具体实现中搜索您的函数。
答案 3 :(得分:4)
你可以尝试使用这个插件:
答案 4 :(得分:2)
如果您的界面与您通常要导航到的具体模型位于同一个库中,则可以向具体对象添加“使用别名”。无论如何,'Usings'都是助手,这有帮助。
using System;
using PrimaryImplementation = YourNamespace.YourConcreteObject;
public interface IYourInterface{
}
当你进入界面时,你有一种快速(和肮脏)的方式来进入你的界面的主要实现。 F12->!F12
答案 5 :(得分:1)
R#在弹出菜单中有一个Go to Implementation选项,这非常方便。