Operator Deyimi
İşlecin, işlenen ve işleci yordamı bir sınıf veya yapı tanımlayan kod bildirir.
[ <attrlist> ] Public [ Overloads ] Shared [ Shadows ] [ Widening | Narrowing ]
Operator operatorsymbol ( operand1 [, operand2 ]) [ As [ <attrlist> ] type ]
[ statements ]
[ statements ]
Return returnvalue
[ statements ]
End Operator
Bölümleri
attrlist
İsteğe Bağlı.Bkz: öznitelik listesi.Public
Gerekli.Bu işleç yordam olduğunu gösterir Public (Visual Basic) erişim.Overloads
İsteğe Bağlı.Bkz: Aşırı Yüklemeler (Visual Basic)Shared
Gerekli.Bu işleç yordam olduğunu gösterir bir Shared (Visual Basic) yordam.Shadows
İsteğe Bağlı.Bkz: Shadows (Visual Basic)Widening
Siz bir dönüştürme işleci için gerekli Narrowing.Bu işleç yordamı tanımlar gösterir bir Genişletme (Visual Basic) dönüştürme."Dönüştürmeler daraltmayı ve daraltmaya" üzerinde bu yardım sayfasına bakın.Narrowing
Siz bir dönüştürme işleci için gerekli Widening.Bu işleç yordamı tanımlar gösterir bir Daraltma (Visual Basic) dönüştürme."Dönüştürmeler daraltmayı ve daraltmaya" üzerinde bu yardım sayfasına bakın.operatorsymbol
Gerekli.Simge veya bu işleci yordamı tanımlar işleci tanıtıcısı.operand1
Gerekli.Adı ve (bir Dönüþtürme iþleci dahil) tek işlem işleci tek işlenen veya ikili işlecinin sol işlenenin türü.operand2
İkili işleçler için gereklidir.Adı ve türü ikili işlecinin sağ işlenen.operand1ve operand2 aşağıdaki sözdizimi ve bölümleri vardır:
[ ByVal ] operandname [ As operandtype ]
Parça
Description
ByVal
İsteğe bağlı, ancak geçişini mekanizması olmalıdır ByVal (Visual Basic).
operandname
Gerekli.Bu işlenen temsil eden değişken adı.Bkz: Bildirilen Öğe Adları (Visual Basic)
operandtype
İsteğe bağlı sürece Option Strict olan On.Bu işlenen veri türü.
type
İsteğe bağlı sürece Option Strict olan On.Operatör yordamı değerin veri türü verir.statements
İsteğe Bağlı.Operatör yordamını çalıştırır ifadeleri engelleme.returnvalue
Gerekli.Operatör yordamı çağıran kodun verir değeri.End Operator
Gerekli.Bu işleç yordam tanımını sonlandırır.
Notlar
Kullanabileceğiniz Operator bir sınıf veya yapı içinde.Yani bildiriminin içerik bir işleç kaynak dosyası, ad, modül, arabirim, yordamı veya bloğu olamaz.Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri (Visual Basic).
Bütün iþleçler olmalýdýr Public Shared.Belirttiğiniz olamaz ByRef, Optional, veya ParamArray ya da işlenen için.
Dönüş değeri tutmak için bir simge veya tanımlayıcı kullanamazsınız.Kullanmanız gereken Return deyimi ve bir değer belirtmeniz gerekir.Herhangi bir sayıda Return ifadeleri görüntülenebilir herhangi bir işlemde.
Bu şekilde bir işleç tanımlama adlı aþýrý yüklemesi, kullandığınız olsun veya olmasın Overloads anahtar sözcüğü.Aşağıdaki tabloda, tanımlayabilirsiniz işleçleri listeler.
Tür |
İşleçler |
---|---|
Tekli |
+, -, IsFalse, IsTrue, Not |
İkili |
+, -, *, /, \, &, ^, >>, <<, =, <>, >, >=, <, <=, And, Like, Mod, Or, Xor |
Dönüştürme (tekli) |
CType |
Dikkat = ikili listesinden işleç olarak atama işleci karşılaştırma işleci.
Tanımladığınız ne zaman CType, ya da belirtmeniz gerekir Widening veya Narrowing.
Eşleşen çiftler halinde
Eşleşen çiftler halinde bazı işleçler tanımlamanız gerekir.Böyle bir çifti her iki operatör tanımlarsanız, diğeri de tanımlamanız gerekir.Eşleşen çiftler halinde aşağıda verilmiştir:
=ve<>
>ve<
>=ve<=
IsTrueveIsFalse
Veri türü kısıtlamaları
Tanımladığınız her işleç üzerinde tanımladığınız sınıf veya yapı kapsaması gerekir.Diğer bir deyişle, sınıf veya yapı veri türünü aşağıdaki gibi görünmelidir:
Tek işlem işleci işlenen.
En az biri ikili işleci.
İşlenen veya dönüştürme işlecinin dönüş türü.
Belirli operatörleri ek veri kısıtlamaları gibi türüne sahiptir:
Tanımladığınız, IsTrue ve IsFalse , operatörler gerekir hem döndürmeleri Boolean türü.
Tanımladığınız, << ve >> işleçleri, bunların her ikisi de belirtmeniz gerekir Integer için operandtype , operand2.
Dönüş türü ya da işlenen türüne karşılık yok.Örneğin, bir karşılaştırma işleci gibi = veya <> dönebilirsiniz Boolean ne işlenen olsa bile, Boolean.
Mantıksal ve Bitsel işleçler
And, Or, Not, Ve Xor işleçleri, Visual Basic'te mantıksal veya Bitsel işlemler gerçekleştirebilir.Ancak, bu işleçlerden birini bir sınıf veya yapı tanımlarsanız, kendi bitwise işlem tanımlayabilirsiniz.
Siz tanımlayamazsınız AndAlso işleci ile doğrudan bir Operator ifadesi.Ancak, kullanabileceğiniz AndAlso , aşağıdaki koşullar yerine getirdi:
Tanımladığınız And için kullanmak istediğiniz aynı işlenen türleri üzerinde AndAlso.
Tanımınızı, And , tanımladığınız, sınıf veya yapı ile aynı türde döndürür.
Tanımladığınız IsFalse operator tanımladığınız, sınıf veya yapı And.
Benzer şekilde, kullanabileceğiniz OrElse tanımladıysanız, Or sınıf veya yapı ve dönüş türü ile aynı işlenen üzerinde tanımlamış olduğunuz IsTrue sınıf veya yapı.
Daraltmayı ve dönüşümleri daraltmaya
A dönüştürme widening çalışma zamanında her zaman başarılı iken bir dönüştürme daraltmaya zamanında başarısız olabilir.Daha fazla bilgi için bkz. Genişletme ve Daraltma Dönüşümleri (Visual Basic).
Olacak şekilde dönüştürme yordamından bildirirseniz Widening, herhangi bir başarısızlığı yordamı kodunuzu oluşturmamanız gerekir.Bu aşağıdaki anlamına gelir:
Türü için geçerli bir değer döndürmesi gerekir her zaman type.
Tüm olası durumlar ve diğer hata koşullarının işlemesi gerekir.
Onu çağıran tüm yordamlar tarafından herhangi bir hata döndürür işlemesi gerekir.
Dönüştürme yordamı başarısız olasılığı veya o BT işlenmeyen bir özel durum neden olabilir, olmasını bildirmelisiniz Narrowing.
Örnek
Aşağıdaki kod örneği Operator için operatör yordamları içeren bir yapı anahatlarını tanımlamak için ifade And, Or, IsFalse, ve IsTrue operators.Andve Or her iki işlenen tür ele abc ve dönüş türü abc.IsFalseve IsTrue türünde tek bir işlenen her ele abc ve Boolean.Bu tanımları kullanmaya çağıran kodun izin And, AndAlso, Or, ve OrElse türündeki işlenenler ile abc.
Public Structure abc
Dim d As Date
Public Shared Operator And(ByVal x As abc, ByVal y As abc) As abc
Dim r As New abc
' Insert code to calculate And of x and y.
Return r
End Operator
Public Shared Operator Or(ByVal x As abc, ByVal y As abc) As abc
Dim r As New abc
' Insert code to calculate Or of x and y.
Return r
End Operator
Public Shared Operator IsFalse(ByVal z As abc) As Boolean
Dim b As Boolean
' Insert code to calculate IsFalse of z.
Return b
End Operator
Public Shared Operator IsTrue(ByVal z As abc) As Boolean
Dim b As Boolean
' Insert code to calculate IsTrue of z.
Return b
End Operator
End Structure
Ayrıca bkz.
Görevler
Nasıl yapılır: Bir İşleci Tanımlama (Visual Basic)
Nasıl yapılır: Bir Dönüşüm İşleci Tanımlama (Visual Basic)
Nasıl yapılır: Bir İşleç Yordamı Çağırma (Visual Basic)
Nasıl yapılır: İşleçleri Tanımlayan Bir Sınıf Kullanma (Visual Basic)