كيفية القيام بما يلي: تمرير إجراءات إلى إجراء آخر في Visual Basic

يوضح هذا المثال كيفية استخدام التفويضات لتمرير إجراء إلى إجراء آخر.

تفويض هو نوع الذي يمكنك استخدامه مثل أي نوع آخر في Visual Basic. العامل AddressOf يرجع تفويض الكائن عند تطبيق اسم إجراء.

يحتوي هذا المثال إجراء مع تفويض الحصول على المعلمة التي يمكنك اتخاذها مرجع لإجراء آخر مع عامل التشغيل AddressOf.

إنشاء تفويض و مطابقة الإجراءات

  1. إنشاء تفويض باسم MathOperator.

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. إنشاء إجراء باسم AddNumbers مع معلمات و إرجاع القيمة التي تتطابق مع تلك الخاصة MathOperator، بحيث يتطابق التواقيع.

    Function AddNumbers( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
        Return x + y
    End Function
    
  3. إنشاء إجراء باسم SubtractNumbers مع توقيع الذي يطابق MathOperator.

    Function SubtractNumbers( 
        ByVal x As Double, 
        ByVal y As Double
    ) As Double
        Return x - y
    End Function
    
  4. إنشاء إجراء باسم DelegateTest التي تأخذ تفويض كمعلمة.

    يمكن أن يقبل هذا إجراء مرجع إلى AddNumbers أو SubtactNumbers، لأنّ التواقيع الخاصة بهم تطابق التوقيع الرقمي MathOperator .

    Sub DelegateTest( 
        ByVal x As Double, 
        ByVal op As MathOperator, 
        ByVal y As Double 
    )
        Dim ret As Double
        ret = op.Invoke(x, y) ' Call the method.
        MsgBox(ret)
    End Sub
    
  5. إنشاء إجراء باسم Test يستدعي DelegateTest مع التفويض الخاصة مرة واحدة AddNumbers كمعلمة و مرة أخرى مع التفويض الخاصة SubtractNumbers كمعلمة.

    Protected Sub Test()
        DelegateTest(5, AddressOf AddNumbers, 3)
        DelegateTest(9, AddressOf SubtractNumbers, 3)
    End Sub
    

    عند يتم استدعاء Test يعرض أولاً النتيجة AddNumbers التي تعمل على 5 و 3، والتي هي 8. ثم نتيجة SubtractNumbers تعمل على 9 و 3 يتم عرضه وهو 6.

راجع أيضًا:

المهام

كيفية القيام بما يلي: استدعاء أسلوب تفويض

المرجع

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

عبارة التفويض

موارد أخرى

المفوضين (Visual Basic)