Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İş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