Aracılığıyla paylaş


İşleç Yordamları (Visual Basic)

İşleç yordamı, tanımladığınız bir sınıf veya yapıdaki standart işlecin (, , veya *gibi<>And) davranışını tanımlayan bir dizi Visual Basic deyimidir. Buna işleç aşırı yüklemesi de denir.

Operatör Prosedürleri Ne Zaman Tanımlanmalı

Bir sınıf veya yapı tanımladığınızda, değişkenleri bu sınıfın veya yapının türünde olacak şekilde bildirebilirsiniz. Bazen böyle bir değişkenin bir ifadenin parçası olarak bir işleme katılması gerekir. Bunu yapmak için bir işlecin işleneni olmalıdır.

Visual Basic yalnızca temel veri türlerinde işleçleri tanımlar. İşlenenlerden biri veya her ikisi de sınıfınızın veya yapınızın türünde olduğunda bir işlecin davranışını tanımlayabilirsiniz.

Daha fazla bilgi için bkz İşleç Deyimi.

Operatör Yordamı Türleri

Bir operatör prosedürü aşağıdaki türlerden biri olabilir:

  • Bağımsız değişkeninin sınıfınızın veya yapınızın türünde olduğu bir birli işlecin tanımı.

  • Bağımsız değişkenlerden en az birinin sınıfınızın veya yapınızın türünde olduğu ikili işlecin tanımı.

  • Bağımsız değişkeninin sınıfınızın veya yapınızın türünde olduğu dönüştürme işlecinin tanımı.

  • Sınıfınızın veya yapınızın türünü döndüren dönüştürme işlecinin tanımı.

Dönüştürme işleçleri her zaman teklidir ve her zaman tanımladığınız işleç olarak kullanırsınız CType .

Bildirim Sözdizimi

İşleç yordamını bildirme söz dizimi aşağıdaki gibidir:

Public Shared [Widening | Narrowing] Operator operatorsymbol ( operand1 [,  operand2 ]) As datatype

' Statements of the operator procedure.

End Operator

Siz yalnızca bir tür dönüştürme işlecinde Widening veya Narrowing anahtar sözcüğünü kullanırsınız. İşleç simgesi, bir tür dönüştürme işleci için her zaman CType İşleci'dir.

İkili işleci tanımlamak için iki işlenen bildirirsiniz ve bir tür dönüştürme işleci de dahil olmak üzere bir birli işleci tanımlamak için bir işlenen bildirirsiniz. Tüm işlenenler bildirilmelidir ByVal.

Her işleneni, Alt Yordamlar için parametreleri bildirdiğiniz gibi bildirirsiniz.

Veri Türü

Tanımladığınız bir sınıf veya yapı üzerinde işleç tanımladığınızdan, işlenenlerden en az biri bu sınıfın veya yapının veri türünde olmalıdır. Tür dönüştürme işleci için, işlenen ya da dönüş türü mutlaka sınıfın veya yapının veri türünde olmalıdır.

Daha fazla ayrıntı için bkz. İşleç Deyimi.

Çağrı Söz Dizimi

bir ifadede işleç simgesini kullanarak bir işleç yordamını örtük olarak çağırırsınız. İşlenenleri, önceden tanımlanmış işleçler için yaptığınız şekilde sağlarsınız.

Bir operatör fonksiyonuna örtük çağrının söz dizimi aşağıdaki gibidir:

Dim testStruct As structurename

Dim testNewStruct As structurename= testStructoperatorsymbol10

Bildirim ve Çağrı çizimi

Aşağıdaki yapı, imzalı bir 128 bit tamsayı değerini, bağlı yüksek ve düşük sıralı parçalar olarak depolar. + işlecini iki veryLong değeri ekleyerek ve bir veryLong sonucu oluşturarak tanımlar.

Public Structure veryLong
    Dim highOrder As Long
    Dim lowOrder As Long
    Public Shared Operator +(ByVal v As veryLong, 
                             ByVal w As veryLong) As veryLong
        Dim sum As New veryLong
        sum = v
        Try
            sum.lowOrder += w.lowOrder
        Catch ex As System.OverflowException
            sum.lowOrder -= (Long.MaxValue - w.lowOrder + 1)
            sum.highOrder += 1
        End Try
        sum.highOrder += w.highOrder
        Return sum
    End Operator
End Structure

Aşağıdaki örnekte, veryLong üzerinde tanımlanan + işleci için tipik bir çağrı gösterilmektedir.

Dim v1, v2, v3 As veryLong
v1.highOrder = 1
v1.lowOrder = Long.MaxValue
v2.highOrder = 0
v2.lowOrder = 4
v3 = v1 + v2

Ayrıca bkz.