J'ai un paramètre d'objet et j'ai besoin de vérifier si l'objet implémente une interface spécifiée dans vb.net. Comment tester ça?Test si un objet implémente une interface
Merci.
J'ai un paramètre d'objet et j'ai besoin de vérifier si l'objet implémente une interface spécifiée dans vb.net. Comment tester ça?Test si un objet implémente une interface
Merci.
Utilisation TypeOf...Is:
If TypeOf objectParameter Is ISpecifiedInterface Then
'do stuff
End If
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
requiredInterface.IsAssignableFrom (representedType)
deux requiredInterface et representedType sont les types
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
J'ai List(Of String)
et le rendement TypeOf tmp Is IList
False
. 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
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
Ceci est une excellente question, correspond exactement à ma requête de recherche dans google et a une réponse. – CodingBarfield