2014-04-29 143 views
1

有没有什么办法可以快速检查对象是否在Visual Studio中实现了特定的接口?检查对象是否实现接口

例子:

interface IFirstInterface : ISecondInterface 
{ 
} 

interface ISecondInterface 
{ 
    void DoStuff(); 
} 

实现:

class MyClass : IFirstInterface 
{ 
    public void DoStuff() 
    { 
     // ISecondInterface implementation 
    } 
} 

我的代码:

var instance = new MyClass(); 

当写我的代码这将是很好的做一个快速检查,看MyClass是否执行ISecondInterface。这可能吗?

注意:我不是在说通过代码来做这件事 - 只是通过Visual Studio UI。如果有帮助,我也使用Resharper。

回答

3

控制 + ëħ。它将带您到Hierarchies resharper的窗口。它具有您所问的所有功能。

查看那里的工具栏以查看不同类型的视图。

+0

其实它是Ctrl + E,H – Tarec

+0

@Tarec谢谢,更新 –

0

这张支票是怎么样的?显示工具提示?

你可以写:

ISecondInterface instance = new MyClass(); 

这不会编译/显示错误的帮助,如果没有实现的接口。

或者,如果你需要实例的类型为MyClass

void AssureItImplements<T>(T dummy){}; 

... 
var instance = new MyClass(); 
AssureItImplements<ISecondInterface>(instance); 

这些方法,你可以在代码中做到这一点,以防万一别人发现它有用。

var implementsInterface1 = typeof(ISecondInterface).IsAssignableFrom(instance.GetType()); 
var implementsInterface2 = instance as ISecondInterface != null; 
var implementsInterface3 = instance is ISecondInterface; 
1

您可以通过按Ctrl+U(转到基本符号R#)来检查。如果该类有多个基本符号,R#将向您显示一个包含所有基本符号的窗口。

相关问题