2009-06-16 7 views

Répondre

14

Vous cherchez quelque chose comme TypeOf? Cela fonctionne uniquement avec les types de référence, pas int/etc. Ou voulez-vous comparer deux instances différentes de variables? Fonctionne également pour les types de ref:

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 ainsi, 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 dans les versions précédentes, vous devez le retourner (bizarre à regarder) et de l'utilisation:

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

Tous ces compilent en SnippetCompiler, alors allez DL si vous ne l'avez pas.

3
TypeOf obj Is MyClass 
0

Le VB équivalent à votre question liée est presque identique:

Dim result As Boolean = obj.GetType().IsAssignableFrom(otherObj.GetType()) 
Questions connexes