Udostępnij za pośrednictwem


Jak: Określić, do jakiego typu odnosi się zmienna obiektu (Visual Basic)

Zmienna obiektu zawiera wskaźnik do danych przechowywanych gdzie indziej. Typ tych danych może ulec zmianie w czasie wykonywania. W dowolnym momencie możesz użyć GetTypeCode metody , aby określić bieżący typ czasu wykonywania lub operator TypeOf , aby dowiedzieć się, czy bieżący typ czasu wykonywania jest zgodny z określonym typem.

Aby określić dokładny typ, na który obecnie wskazuje zmienna obiektu...

  1. W zmiennej obiektu wywołaj metodę GetTypeSystem.Type , aby pobrać obiekt.

    Dim myObject As Object
    myObject.GetType()
    
  2. Na klasie System.Type wywołaj udostępnioną metodę GetTypeCode, aby pobrać wartość wyliczenia TypeCode dla typu obiektu.

    Dim myObject As Object
    Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType())
    MsgBox("myObject currently has type code " & CStr(datTyp))
    

    Możesz przetestować wartość wyliczenia TypeCode względem tych elementów członkowskich wyliczenia, takich jak Double.

Aby określić, czy typ zmiennej obiektu jest zgodny z określonym typem

  • Użyj TypeOf operatora w połączeniu z operatorem Is, aby przetestować obiekt za pomocą TypeOf wyrażenia ... Is.

    If TypeOf objA Is System.Windows.Forms.Control Then
        MsgBox("objA is compatible with the Control class")
    End If
    

    Wyrażenie TypeOf...Is zwraca True , jeśli typ czasu wykonywania obiektu jest zgodny z określonym typem.

    Kryterium zgodności zależy od tego, czy określony typ jest klasą, strukturą czy interfejsem. Ogólnie rzecz biorąc, typy są zgodne, jeśli obiekt jest tego samego typu, co, dziedziczy lub implementuje określony typ. Aby uzyskać więcej informacji, zobacz TypeOf Operator.

Kompilowanie kodu

Należy pamiętać, że określony typ nie może być zmienną ani wyrażeniem. Musi być nazwą zdefiniowanego typu, takiego jak klasa, struktura lub interfejs. Obejmuje to typy wewnętrzne, takie jak Integer i String.

Zobacz także