كشف العامل

يقوم بتعريف رمز العامل, المعاملات و التعليمات البرمجية التي تعريف إجراء عامل التشغيل على فئة أو بنية.

[ <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

راجع أيضًا:

المهام

كيفية القيام بما يلي: تعريف عامل تشغيل

كيفية القيام بما يلي: تعريف تحويل عامل التشغيل

كيفية القيام بما يلي: استدعاء إجراء عامل التشغيل

كيفية القيام بما يلي: استخدم فئة التي تعرّفُ عوامل تشغيل

المرجع

عامل IsFalse

عامل التشغيل IsTrue

التوسيع في (Visual Basic)

تضييقي (Visual Basic)

المبادئ

توسيع و تضييق التحويلات

إجراءات عامل التشغيل