Question

Dans l'esprit de la c # question ..

Quelles sont les instructions équivalentes pour comparer les types de classe dans VB.NET?

Était-ce utile?

La solution

Recherchez-vous quelque chose comme TypeOf ? Cela ne fonctionne qu'avec les types de référence, pas int / etc.

If TypeOf "value" Is String Then
     Console.WriteLine("'tis a string, m'lord!")

Ou voulez-vous comparer deux instances différentes de variables? Fonctionne également pour les types de référence:

Dim one As Object = "not an object"
Dim two As Object = "also not an object, exactly"
Dim three as Object = 3D

If one.GetType.Equals( two.GetType ) Then WL("They are the same, man")
If one.GetType Is two.GetType then WL("Also the same")
If one.GetType IsNot three.GetType Then WL("but these aren't")

Vous pouvez également utiliser gettype () comme suit, si vous n'utilisez pas deux objets:

If three.GetType Is gettype(integer) then WL("is int")

Si vous voulez voir si quelque chose est une sous-classe d'un autre type (et sont en .net 3.5):

If three.GetType.IsSubclassOf(gettype(Object)) then WL("it is")

Mais si vous voulez faire cela dans les versions précédentes, vous devez le retourner (bizarre à regarder) et utiliser:

If gettype(Object).IsAssignableFrom(three.GetType) Then WL("it is")

Tous ces éléments sont compilés dans SnippetCompiler , alors ouvrez une liste DL si vous n'en avez pas. il.

Autres conseils

TypeOf obj Is MyClass

L'équivalent VB de votre question liée est presque identique:

Dim result As Boolean = obj.GetType().IsAssignableFrom(otherObj.GetType())
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top