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.
Bir sınıf veya yapı üzerinde işleç yordamı tanımlayan işleç sembolünü, işlenenleri ve kodu bildirir.
Sözdizimi
[ <attrlist> ] Public [ Overloads ] Shared [ Shadows ] [ Widening | Narrowing ]
Operator operatorsymbol ( operand1 [, operand2 ]) [ As [ <attrlist> ] type ]
[ statements ]
[ statements ]
Return returnvalue
[ statements ]
End Operator
Parçalar
attrlist
Opsiyonel. Bkz . Öznitelik Listesi.
Public
Gerekli. Bu işleç yordamının Genel erişime sahip olduğunu gösterir.
Overloads
Opsiyonel. Bkz. Aşırı Yüklemeler.
Shared
Gerekli. Bu işleç yordamının bir Paylaşılan yordam olduğunu gösterir.
Shadows
Opsiyonel. Bkz. Gölgeler.
Widening
belirtmediğiniz Narrowingsürece dönüştürme işleci için gereklidir. Bu işleç yordamının bir Genişletme dönüştürmesi tanımladığını gösterir. Bu Yardım sayfasındaki "Genişletme ve Daraltma Dönüştürmeleri" bölümüne bakın.
Narrowing
belirtmediğiniz Wideningsürece dönüştürme işleci için gereklidir. Bu işleç yordamının bir Daraltma dönüştürmesi tanımladığını gösterir. Bu Yardım sayfasındaki "Genişletme ve Daraltma Dönüştürmeleri" bölümüne bakın.
operatorsymbol
Gerekli. Bu işleç yordamının tanımladığı işlecin simgesi veya tanımlayıcısı.
operand1
Gerekli. Bir birli işlecin tek işleneninin (dönüştürme işleci dahil) veya bir ikili işlecin sol işleneninin adı ve türü.
operand2
İkili işleçler için gereklidir. İkili işlecin doğru işleneninin adı ve türü.
operand1 ve operand2 aşağıdaki söz dizimini ve bölümleri içerir:
[ ByVal ] operandname [ As operandtype ]
| Bölüm | Açıklama |
|---|---|
ByVal |
İsteğe bağlı, ancak geçirme mekanizması ByVal olmalıdır. |
operandname |
Gerekli. Bu işleneni temsil eden değişkenin adı. Bkz. Bildirilen Öğe Adları. |
operandtype |
olmadığı sürece Option Strict isteğe bağlı.On Bu işlenenin veri türü. |
type
olmadığı sürece Option Strict isteğe bağlı.On İşleç yordamının döndürdüğü değerin veri türü.
statements
Opsiyonel. İşleç yordamının çalıştığı deyim bloğu.
returnvalue
Gerekli. İşleç yordamının çağıran koda döndürdüğü değer.
End
Operator
Gerekli. Bu işleç yordamının tanımını sonlandırır.
Açıklamalar
Yalnızca bir sınıfta veya yapıda kullanabilirsiniz Operator . Bu, bir işlecin bildirim bağlamının kaynak dosya, ad alanı, modül, arabirim, yordam veya blok olamayacağı anlamına gelir. Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri.
Tüm işleçler olmalıdır Public Shared. her iki işlenen için de , Optionalveya ParamArray belirtemezsinizByRef.
Dönüş değerini tutmak için işleç simgesini veya tanımlayıcısını kullanamazsınız. deyimini Return kullanmanız ve bir değer belirtmesi gerekir. Yordamda herhangi bir yerde herhangi bir sayıda Return deyim görüntülenebilir.
Bir işleci bu şekilde tanımlamak, anahtar sözcüğünü kullansanız da kullanmasanız Overloads da işleç aşırı yüklemesi olarak adlandırılır. Aşağıdaki tabloda tanımlayabileceğiniz işleçler listelenmiştir.
| Türü | Operatörler |
|---|---|
| Tekil |
+, -, IsFalse, IsTrue, , Not |
| İkilik |
+, -, *, , /, \, &, ^, , >>, <<, =, <>, >, >=, <, , <=AndLikeModOrXor |
| Dönüştürme (birli) | CType |
= İkili listedeki işlecin atama işleci değil karşılaştırma işleci olduğunu unutmayın.
tanımlarken CTypeveya NarrowingbelirtmelisinizWidening.
Eşleşen Çiftler
Bazı işleçleri eşleşen çiftler olarak tanımlamanız gerekir. Böyle bir çiftin işlecini tanımlarsanız, diğerini de tanımlamanız gerekir. Eşleşen çiftler şunlardır:
=ve<>>ve<>=ve<=IsTrueveIsFalse
Veri Türü Kısıtlamaları
Tanımladığınız her işleç, tanımladığınız sınıfı veya yapıyı içermelidir. Bu, sınıfın veya yapının aşağıdaki veri türü olarak görünmesi gerektiği anlamına gelir:
Birli işlecin işleneni.
İkili işlecin işlenenlerinden en az biri.
bir dönüştürme işlecinin işleneni veya dönüş türü.
Bazı işleçler aşağıdaki gibi ek veri türü kısıtlamalarına sahiptir:
ve
IsFalseişleçleriniIsTruetanımlarsanız, her ikisinin de türü döndürmesiBooleangerekir.ve işleçlerini tanımlarsanız
<<, her ikisi de için türünüoperand2operandtypebelirtmelidirInteger.>>
Dönüş türünün her iki işlenenin türüne de karşılık gelen olması gerekmez. Örneğin, veya gibi =<> bir karşılaştırma işleci, işlenenin hiçbiri Booleanolmasa bile döndürebilirBoolean.
Mantıksal ve Bit Düzeyinde İşleçler
And, Or, Notve Xor işleçleri Visual Basic'te mantıksal veya bit düzeyinde işlemler gerçekleştirebilir. Ancak, bu işleçlerden birini bir sınıf veya yapıda tanımlarsanız, yalnızca bit tabanlı işlemini tanımlayabilirsiniz.
işlecini AndAlso doğrudan bir Operator deyimle tanımlayamazsınız. Ancak, aşağıdaki koşulları yerine getirdiyseniz kullanabilirsiniz AndAlso :
için
AndAlsokullanmak istediğiniz işlenen türlerini tanımlamışAndolmanız gerekir.tanımınız
And, tanımladığınız sınıf veya yapıyla aynı türü döndürür.işlecini
IsFalsetanımladığınız sınıf veya yapıda tanımlamışsınızdırAnd.
Benzer şekilde, sınıfın veya yapının dönüş türüyle aynı işlenenler üzerinde tanımladıysanız Or ve sınıf veya yapı üzerinde tanımladıysanız IsTrue kullanabilirsinizOrElse.
Genişletme ve Daraltma Dönüştürmeleri
Genişletme dönüştürmesi her zaman çalışma zamanında başarılı olurken, daraltma dönüştürmesi çalışma zamanında başarısız olabilir. Daha fazla bilgi için bkz. Genişletme ve Daraltma Dönüştürmeleri.
olarak bir dönüştürme yordamı Wideningbildirirseniz, yordam kodunuz herhangi bir hata oluşturmamalıdır. Bunun anlamı:
Her zaman türünde
typegeçerli bir değer döndürmelidir.Tüm olası özel durumları ve diğer hata koşullarını işlemelidir.
Çağıran tüm yordamlardan gelen hata dönüşlerini işlemelidir.
Dönüştürme yordamının başarılı olma olasılığı varsa veya işlenmeyen bir özel duruma neden olabilirse, olarak Narrowingbildirmeniz gerekir.
Örnek
Aşağıdaki kod örneği, , Or, IsFalseve IsTrue işleçleri için işleç yordamlarını içeren bir yapının ana hattını tanımlamak için deyimini AndkullanırOperator.
And ve Or her biri türünde abc iki işlenen alır ve türü abcdöndürür.
IsFalse ve IsTrue her biri türünde abc tek bir işlenen alır ve döndürür Boolean. Bu tanımlar, çağıran kodun türündeki işlenenlerle , AndAlso, Orve OrElse kullanmasına Andabcolanak sağlar.
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