测试对象是否实现了接口

Mar*_*olo 41 vb.net

我有一个对象参数,我需要检查该对象是否在vb.net中实现了指定的接口.如何测试?

谢谢.

AJ.*_*AJ. 59

使用TypeOf ...是:

If TypeOf objectParameter Is ISpecifiedInterface Then
    'do stuff
End If 
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果“执行操作”需要调用对象上的接口成员,则您可能希望使用“As”进行强制转换,然后确保对象“IsNot Nothing”。(这可以防止不必要的第二次转换。) (2认同)

Nic*_*ore 6

我还发现Scott Hansleman撰写的这篇文章对此特别有帮助.在他看来,他建议

C#

if (typeof(IWhateverable).IsAssignableFrom(myType)) { ... }
Run Code Online (Sandbox Code Playgroud)

我最终做了:

VB.Net

Dim _interfaceList As List(Of Type) = myInstance.GetType().GetInterfaces().ToList()
If _interfaceList.Contains(GetType(IMyInterface)) Then
   'Do the stuff
End If
Run Code Online (Sandbox Code Playgroud)