Nesne Türünü Belirleme (Visual Basic)

Genel nesne değişkenleri (başka bir ifadeyle, olarak Objectbildirdiğiniz değişkenler) herhangi bir sınıftaki nesneleri tutabilir. türündeki Objectdeğişkenleri kullanırken, nesnenin sınıfına göre farklı eylemler gerçekleştirmeniz gerekebilir; örneğin, bazı nesneler belirli bir özelliği veya yöntemi desteklemeyebilir. Visual Basic, nesne değişkeninde hangi nesne türünün depolandığını belirlemek için iki araç sağlar: TypeName işlev ve TypeOf...Is işleç.

TypeName ve TypeOf... Dir

TypeName İşlev bir dize döndürür ve aşağıdaki kod parçasında gösterildiği gibi bir nesnenin sınıf adını depolamanız veya görüntülemeniz gerektiğinde en iyi seçenektir:

Dim Ctrl As Control = New TextBox
MsgBox(TypeName(Ctrl))

TypeOf...Is işleci, kullanarak TypeNameeşdeğer bir dize karşılaştırmasından çok daha hızlı olduğundan nesnenin türünü test etme için en iyi seçenektir. Aşağıdaki kod parçası, bir TypeOf...Is ifadesi If...Then...Else deyimi içinde kullanır:

If TypeOf Ctrl Is Button Then
    MsgBox("The control is a button.")
End If

Burada bir uyarı sözü gerekiyor. işleci TypeOf...Is , bir nesne belirli bir türdeyse veya belirli bir türden türetilmişse döndürür True . Visual Basic ile yaptığınız hemen her şey, normalde nesne olarak düşünülmeyen dizeler ve tamsayılar gibi bazı öğeleri içeren nesneleri içerir. Bu nesneler Object nesnesinden türetilir ve yöntemlerini devralır. Bir Integer geçirildiğinde ve Object ile değerlendirildiğinde, TypeOf...Is işleci True döndürür. Aşağıdaki örnek, parametre InParam'nin hem bir Object hem de bir Integer olduğunu bildirir.

Sub CheckType(ByVal InParam As Object)
    ' Both If statements evaluate to True when an
    ' Integer is passed to this procedure.
    If TypeOf InParam Is Object Then
        MsgBox("InParam is an Object")
    End If
    If TypeOf InParam Is Integer Then
        MsgBox("InParam is an Integer")
    End If
End Sub

Aşağıdaki örnek, TypeOf...Is ve TypeName öğelerini Ctrl bağımsız değişkeninde ona geçirilen nesnenin türünü belirlemek için kullanır. İşlem, üç farklı denetim türüyle TestObject çağırır ShowType.

Örneği çalıştırmak için

  1. Yeni bir Windows Uygulaması projesi oluşturun ve forma bir Button denetim, denetim CheckBox ve denetim RadioButton ekleyin.

  2. Formdaki düğmeden TestObject yordamını çağırın.

  3. Formunuza aşağıdaki kodu ekleyin:

    Sub ShowType(ByVal Ctrl As Object)
        'Use the TypeName function to display the class name as text.
        MsgBox(TypeName(Ctrl))
        'Use the TypeOf function to determine the object's type.
        If TypeOf Ctrl Is Button Then
            MsgBox("The control is a button.")
        ElseIf TypeOf Ctrl Is CheckBox Then
            MsgBox("The control is a check box.")
        Else
            MsgBox("The object is some other type of control.")
        End If
    End Sub
    
    Protected Sub TestObject()
        'Test the ShowType procedure with three kinds of objects.
        ShowType(Me.Button1)
        ShowType(Me.CheckBox1)
        ShowType(Me.RadioButton1)
    End Sub
    

Ayrıca bakınız