İşleç Yordamları (Visual Basic)
İşleç yordamı, tanımladığınız bir sınıf veya yapıdaki standart işlecin (, , veya And
gibi*
<>
) 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 veryLong
tanı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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin