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