2009-09-01 7 views

Répondre

52

Utilisation TypeOf...Is:

If TypeOf objectParameter Is ISpecifiedInterface Then 
    'do stuff 
End If 
+1

Notez que si "do stuff" nécessite d'appeler un membre de l'interface sur l'objet, vous voulez probablement utiliser "As" pour lancer et ensuite assurer l'objet "IsNot Nothing". (Cela empêche une seconde distribution inutile.) – bobbymcr

3

requiredInterface.IsAssignableFrom (representedType)

deux requiredInterface et representedType sont les types

3

je trouve aussi cette article par Scott Hansleman être particulièrement utile à cet égard. Dans ce document, il recommande

C#

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

J'ai fini par faire:

VB.Net

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

J'ai List(Of String) et le rendement TypeOf tmp Is IListFalse. Une liste (de T) implémente plusieurs interfaces (IEnumerable, IList, ...) et de vérifier qu'un requiert l'extrait suivant en VB:

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

Voici une façon simple de déterminer si une variable donnée d'un objet « o "implémente une interface spécifique" ISomething ":

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