testing一个对象是否实现了一个接口

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

谢谢。

使用TypeOf …是 :

If TypeOf objectParameter Is ISpecifiedInterface Then 'do stuff End If 

requiredInterface.IsAssignableFrom(representedType)

requiredInterface和RepresentType都是Types

我还发现Scott Hansleman的这篇文章对此特别有帮助。 在这里,他build议

C#

 if (typeof(IWhateverable).IsAssignableFrom(myType)) { ... } 

我结束了:

VB.Net

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

以下是确定给定对象variables“o”是否实现特定接口“ISomething”的简单方法:

 If o.GetType().GetInterfaces().Contains(GetType(ISomething)) Then ' The interface is implemented End If 

我有一个List(Of String)TypeOf tmp Is IList返回False 。 一个List(Of T)实现了多个接口(IEnumerable,IList,…),并检查一个需要在VB中的以下代码片段:

 If tmp.GetInterfaces().Contains(GetType(IEnumerable)) Then // do stuff... End If