Frage

Im Geist des c # Frage ..

Was ist die äquivalenten Aussagen Klassentypen in VB.NET vergleichen?

War es hilfreich?

Lösung

Sie suchen nach etwas wie TypeOf? Dies funktioniert nur mit Referenztypen nicht int / etc.

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

Oder wollen Sie zwei verschiedene Instanzen von Variablen vergleichen? Funktioniert auch für ref Typen:

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")

Sie können auch gettype() wie so verwenden, wenn Sie nicht zwei Objekte verwenden:

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

Wenn Sie möchten, um zu sehen, ob etwas eine Unterklasse eines anderen Typs ist (und sind in .net 3.5):

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

Wenn Sie jedoch, dass in den früheren Versionen tun wollen, müssen Sie es Flip (komisch zu sehen) und die Verwendung:

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

Alle diese Kompilierung in SnippetCompiler , so gehen DL, wenn Sie nicht haben es.

Andere Tipps

TypeOf obj Is MyClass

Die VB entspricht verknüpften Frage ist fast identisch:

Dim result As Boolean = obj.GetType().IsAssignableFrom(otherObj.GetType())
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top