36
A
回答
52
使用TypeOf...Is:
If TypeOf objectParameter Is ISpecifiedInterface Then
'do stuff
End If
+1
請注意,如果「do stuff」需要調用對象的接口成員,那麼可能需要使用「As」進行強制轉換,然後確保對象「IsNot Nothing」。 (這可以防止不必要的第二次演員。) – bobbymcr 2009-09-01 03:34:29
3
requiredInterface.IsAssignableFrom(representedType)
兩個requiredInterface和representedType是類型
3
我也發現了這個article斯科特Hansleman是這個特別有幫助。在書中,他建議
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
0
我有一個List(Of String)
和TypeOf tmp Is IList
回報False
。一覽表(Of T)已實現了多個接口(IEnumerable的,IList的,...),並檢查只是一個需要VB下面的代碼片段:
If tmp.GetInterfaces().Contains(GetType(IEnumerable)) Then
// do stuff...
End If
1
這裏有一個簡單的方法來確定是否一個給定對象變量的「o 「實現一個特定的接口」ISomething「:
If o.GetType().GetInterfaces().Contains(GetType(ISomething)) Then
' The interface is implemented
End If
相關問題
- 1. C#:測試一個對象是否實現了任何一個接口列表?
- 2. 測試對象是否實現接口
- 3. 如何檢查一個對象是否實現了一個接口?
- 4. 檢查一個對象是否實現了VB6中的特定接口
- 5. 我們如何測試一個類實現了很多接口?
- 6. 查明一個類型是否實現了通用接口
- 7. C#反射測試,如果成員是一個接口實現
- 8. 確保一個對象將實現一個接口
- 9. 測試一個對象是否是一個字符串
- 10. 確定一個類是否實現了一個接口而不引用它
- 11. 檢查一個類是否在運行時實現了一個接口
- 12. 確定一個類是否實現了一個非常特定的接口
- 13. 如何測試是否用rspec創建了一個對象?
- 14. Java - 將參數設置爲對象,它既擴展了一個對象又實現了一個接口
- 15. 編寫單元測試檢查它是否實現了一個接口是否有意義?
- 16. zope.interface.Interface如何實現一個實現另一個接口的對象列表?
- 17. 如何確定一個對象是否在Perl中實現了一個方法?
- 18. 如何確定一個對象是實現一個共同的接口
- 19. 測試是否按下了一個javax.swing.JButton
- 20. AS3 - 我可以知道一個類是否實現了一個接口(或者是另一個類的子類)?
- 21. 實現一個java接口
- 22. 確定一個類的超類是否實現了java中的某個接口
- 23. 類都擴展一個抽象類,實現了接口
- 24. 如何判斷一個類是否是java接口的實現
- 25. 測試對象是否在Google Closure類框架中實現接口
- 26. 什麼是spring bean的bean ID實現了一個接口
- 27. 如何在另一個接口中實現一個接口
- 28. 測試一個對象是不是一個類型
- 29. 在擴展另一個對象的同時實現RealmModel接口
- 30. 通過實現接口的Ria服務公開一個對象
這是一個很好的問題,我的搜索查詢完全匹配谷歌,並有一個答案。 – CodingBarfield 2011-02-03 15:56:29