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 Andgibi*<>) davranışını tanımlayan bir dizi Visual Basic deyimidir. Buna işleç aşırı yüklemesi de denir.

İşleç Yordamları Ne Zaman Tanımlanacağı

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.

İşleç Yordamı Türleri

Bir işleç yordamı 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

veya Narrowing anahtar sözcüğünü Widening yalnızca bir tür dönüştürme işlecinde kullanırsınız. İşleç simgesi her zaman bir tür dönüştürme işleci için CType İşlevi'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 veya dönüş türü, sınıfın veya yapının veri türünde olmalıdır.

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

Arama 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 sağladığınız gibi sağlarsınız.

Bir işleç yordamına örtük çağrının söz dizimi aşağıdaki gibidir:

Dim testStruct As structurename

Dim testNewStruct As structurename = testStruct operatorsymbol 10

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. İki veryLong değer eklemek ve sonuçta elde veryLong edilen bir değer oluşturmak için işlecini 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, üzerinde veryLongtanımlanan işleç 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.