كشف العامل
يقوم بتعريف رمز العامل, المعاملات و التعليمات البرمجية التي تعريف إجراء عامل التشغيل على فئة أو بنية.
[ <attrlist> ] Public [ Overloads ] Shared [ Shadows ] [ Widening | Narrowing ]
Operator operatorsymbol ( operand1 [, operand2 ]) [ As [ <attrlist> ] type ]
[ statements ]
[ statements ]
Return returnvalue
[ statements ]
End Operator
الأجزاء
attrlist
اختياري. راجع قائمة سمة.Public
مطلوبة. يشير إلى أن إجراء العامل التشغيل هذا له عام (Visual Basic) الوصول.Overloads
اختياري. انظر الزوائد (Visual Basic)Shared
مطلوبة. يشير إلى أن إجراء عامل التشغيل هذا هو (Visual Basic) المشترك الإجراء.Shadows
اختياري. انظر الظلال (Visual Basic)Widening
مطلوب لعامل تشغيل تحويل إلا إذا قمت بتحديد Narrowing. يشير إلى أن إجراء عامل التشغيل هذا يعرّف التوسيع في (Visual Basic) التحويل. راجع "التحويلات التوسيعية و التضييقية" على صفحة التعليمات هذه.Narrowing
مطلوب لعامل تشغيل تحويل إلا إذا قمت بتحديد Widening. يشير إلى أن إجراء عامل التشغيل هذا يعرّف تضييقي (Visual Basic) التحويل. راجع "التحويلات التوسيعية و التضييقية" على صفحة التعليمات هذه.operatorsymbol
مطلوبة. رمز أو معرّف عامل التشغيل هو إجراء عامل التشغيل هذا الذي يعريفه.operand1
مطلوبة. اسم ونوع مُعامل واحد من عوامل التشغيل الأحادية (بما في ذلك عامل تشغيل التحويل) أو المعامل الأيسر من عامل التشغيل الثنائي.operand2
مطلوب لعوامل تشغيل ثنائية. اسم ونوع المُعامل الأيمن من عوامل التشغيل الثنائية.كل operand1 و operand2 يحتوي على بناء الجملة والأجزاء التالية:
[ ByVal ] operandname [ As operandtype ]
جزء
الوصف
ByVal
اختياري, و لكن يجب أن تكون آلية التمرير Visual Basic) ByVal).
operandname
مطلوبة. اسم المتغير الذي يمثل هذا المُعامل. انظر أسماء العنصر المعرف
operandtype
اختياري إلا إذا Option Strict هو On. نوع البيانات من هذا المُعامل.
type
اختياري إلا إذا Option Strict هو On. نوع البيانات للقيمة التي يرجعها إجراء عامل التشغيل.statements
اختياري. مقاطع من الكشوف التي ينفذها اجراء عامل التشغيل.returnvalue
مطلوبة. القيمة التي يرجعها اجراء عامل التشغيل الى التعليمات البرمجية المستدعية.EndOperator
مطلوبة. ينهي تعريف إجراء عامل التشغيل هذا.
ملاحظات
يمكنك استخدام Operator فقط في فئة أو بنية. وهذا يعني تعريف السياق لعامل تشغيل لا يمكن أن يكون ملف مصدر ، مساحة اسم, وحدة نمطية ، واجهة أو إجراء أو مقطع. لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.
يجب أن تكون كل العوامل Public Shared. لا يمكنك تحديد ByRef, Optional، أو ParamArray لأي مُعامل.
لا يمكنك استخدام رمز العامل أو المعرّف للاحتفاظ بقيمة الإرجاع. يجب عليك استخدام Return الكشف, ويجب عليها تحديد قيمة. أي عدد من Return الكشوف يمكن أن تظهر في أي مكان في الإجراء.
تعريف عامل تشغيل بهذه الطريقة يسمىالتحميل الزائد لعامل التشغيل، في حال استخدام او عدم استخدام Overloads الكلمة الأساسية. يسرد الجدول التالي عوامل التشغيل التي بإمكانك تعريفها.
Type |
عوامل التشغيل |
---|---|
أحادي |
+, -, IsFalse, IsTrue, Not |
Binary |
+, -, *, /, \, &, ^, >>, <<, =, <>, >, >=, <, <=, And, Like, Mod, Or, Xor |
تحويل (أحادي) |
CType |
لاحظ أن عامل التشغيل = في القائمة الثنائية هو عامل المقارنة, و ليس عامل تشغيل التعيين.
عند تعريف CType، يجب تحديد إما Widening أو Narrowing.
أزواج متطابقة
يجب عليك تعريف بعض عوامل التشغيل كـ أزواج متطابقة. إذا قمت بتعريف عامل تشغيل مثل ذلك الزوج, يجب عليك تعريف الأخر أيضاً. الـأزواج المتطابقة هي التالية:
= و <>
> و <
>= و <=
IsTrue و IsFalse
قيود نوع البيانات
يجب أن يتضمن كل عامل تشغيل تقوم بتعريفة الفئة أو البنية التي قمت بتعريفه فيها. وهذا يعني أن الفئة أو البنية يجب أن تظهر كـ نوع البيانات مما يلي:
مُعامل من عوامل التشغيل الأحادية.
واحد على الأقل من المعاملات من عامل التشغيل الثنائي.
إما المُعامل أو نوع الإرجاع لعامل تشغيل التحويل.
عوامل تشغيل معينة تحتوي على قيود نوع بيانات إضافية كما يلي:
إذا قمت بتعريف IsTrue و IsFalse عوامل التشغيل، فإن يجب على كليهما ارجاع Boolean النوع.
إذا قمت بتعريف << و >> عوامل التشغيل، يجب على كليهما تحديد Integer النوع لـ operandtype من operand2.
نوع الإرجاع لا يحتاج الى أن يتوافق مع نوع أي من المعاملين. على سبيل المثال، عامل تشغيل المقارنة مثل = أو <> يمكنه إرجاع Boolean حتى إذا لم يكن أي من المعاملين هو Boolean.
عوامل تشغيل منطقية و المختصة بالبت
And, Or, Not، و Xor عوامل التشغيل يمكنها تنفيذ اما عمليات مختصة بالبت أو المنطقية في Visual Basic. ومع ذلك، إذا قمت بتعريف أحد هذه العوامل في فئة أو بنية ، يمكنك تعريف فقط به العمليات المختصة بالبت.
لا يمكن تعريف AndAlso عامل التشغيل مباشرةً مع Operator الكشف. ومع ذلك، يمكنك استخدام AndAlso إذا تم استيفاء الشروط التالية:
قمت بتعريف And على نفس أنواع المُعامل الذي تريد استخدامة لـ AndAlso.
تعريف الـ And يقوم بإرجاع نفس النوع كفئة أو بنية كما قمت بتعريفها فيه.
قمت بتعريف IsFalse عامل التشغيل على الفئة أو البناء حيث قمت بتعريف And.
وبنفس الطريقة، يمكنك استخدام OrElse إذا قمت بتعريف Or على نفس المعاملات, مع نوع الإرجاع للفئة أو البنية ، ثم قمت بتعريف IsTrue على الفئة أو البنية.
توسيع و تضييق التحويلات
التحويل التوسيعي دائماً ينجح في وقت التشغيل, أثناء الـتحويل التضييقيقد يفشل في وقت التشغيل. لمزيد من المعلومات، راجع توسيع و تضييق التحويلات.
في حالة التصريح بإجراء التحويل ليكون Widening، التعليمات البرمجية للإجراء الخاص بك يجب أن لا يقوم بإنشاء أي فشل. يعني ذلك ما يلي:
يجب أن ترجع قيمة صحيحة دوماً من النوع type.
يجب أن يعالج كلكل الاستثناءات المحتملة وشروط الخطأ الأخرى.
يجب أن يعالج أي خطأ يرجع من أي اجراء تناديه.
اذا كان هناك أي احتمال أن لا ينجح اجراء التحويل, أو يسبب استثناء لا يمكن معالجتة, يجب عليك تعريفة كـ Narrowing.
مثال
مثال التعليمات البرمجية التالي يستخدم Operator الكشف لتعريف مخطط تفصيلي للبنية التي تتضمن إجراءات عامل التشغيل لـ And, Or, IsFalse، و IsTrue عوامل التشغيل. And و Or تأخذ كل منا يأخذ معاملين من النوع abc و يقوم بارجاع نوع abc. IsFalse و IsTrue يأخذ كل منها معامل واحد من النوع abc ويرجع Boolean. تسمح هذه التعريفات التعليمات البرمجية المستدعية لاستخدام And, AndAlso, Or، و OrElse مع معاملات من النوع 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
راجع أيضًا:
المهام
كيفية القيام بما يلي: تعريف عامل تشغيل
كيفية القيام بما يلي: تعريف تحويل عامل التشغيل
كيفية القيام بما يلي: استدعاء إجراء عامل التشغيل
كيفية القيام بما يلي: استخدم فئة التي تعرّفُ عوامل تشغيل