كيفية القيام بما يلي: تمرير إجراءات إلى إجراء آخر في Visual Basic
يوضح هذا المثال كيفية استخدام التفويضات لتمرير إجراء إلى إجراء آخر.
تفويض هو نوع الذي يمكنك استخدامه مثل أي نوع آخر في Visual Basic. العامل AddressOf يرجع تفويض الكائن عند تطبيق اسم إجراء.
يحتوي هذا المثال إجراء مع تفويض الحصول على المعلمة التي يمكنك اتخاذها مرجع لإجراء آخر مع عامل التشغيل AddressOf.
إنشاء تفويض و مطابقة الإجراءات
إنشاء تفويض باسم MathOperator.
Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
إنشاء إجراء باسم AddNumbers مع معلمات و إرجاع القيمة التي تتطابق مع تلك الخاصة MathOperator، بحيث يتطابق التواقيع.
Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End Function
إنشاء إجراء باسم SubtractNumbers مع توقيع الذي يطابق MathOperator.
Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End Function
إنشاء إجراء باسم 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
إنشاء إجراء باسم 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.
راجع أيضًا:
المهام
كيفية القيام بما يلي: استدعاء أسلوب تفويض