التفويضات (دليل البرمجة لـ #C)

التفويض هو نوع يعرّف توقيع لأسلوب. عندما تقوم بإنشاء مثيل لتفويض، يمكنك إجراء اقتران للمثيل مع أي أسلوب بتوقيع متوافق. يمكن استدعاء (أو الاتصال بالـ) الأسلوب عن طريق مثيل التفويض.

يتم إستخدام التفويضات لتمرير الأساليب كوسيطات إلى أساليب أخرى. معالجات الأحداث ليست إلا أساليب يتم استدعاؤها عن طريق تفويضات. تقوم أنت بإنشاء أسلوب مخصص ويمكن لأي فئة كعنصر تحكم ويندوز استدعاء الأسلوب الخاص بك عند حدوث حدث معين. يبين المثال التالي كيفية تعريف تفويض:

    public delegate int PerformCalculation(int x, int y);

يمكن تعيين أي أسلوب من أي فئة قابلة للوصول أو أي بنية تتطابق مع توقيع التفويض الذي يتكون من نوع قيمة الإرجاع والمعلمات إلى التفويض. يمكن للأسلوب أن يكون أسلوب ثابت أو أسلوب مثيل. يؤدي ذلك إلى إمكانية تغيير استدعاءات الأساليب برمجياً وأيضاً وضع تعليمات برمجية جديدة في الفئات الموجود. يمكنك تعيين الأسلوب الخاص بك طالما أنك تعرف توقيع التفويض.

ملاحظة

في سياق التحميل الزائد للأساليب لا يتضمن توقيع الأسلوب قيمة الإرجاع. ولكن في سياق التفويضات يتضمن التوقيع قيمة الإرجاع. بمعنى آخر، يجب أن يحتوي الأسلوب على نفس قيمة إرجاع التفويض.

هذه الإمكانية ألا وهي الإشارة إلى الأسلوب كمعلمة تجعل التفويضات كائنات مثالية لتعريف أساليب رد الاتصال. على سبيل المثال، يمكن تمرير مرجع لأسلوب يقوم بالمقارنة بين كائنين لخوارزمية الفرز. فصل التعليمات البرمجية للمقارنة يسمح للخوارزمية بأن تُكتب بطريقة أكثر عمومية.

نظرة عامة على التفويضات

للتفويضات الخصائص التالية:

  • تعمل التفويضات كمؤشرات الدوال في ++C ولكنها آمنة النوع.

  • تسمح التفويضات من تمرير الأساليب كمعلمات.

  • يمكن استخدام التفويضات لتعريف أساليب رد الاتصال.

  • يمكن أن تكون التفويضات متسلسلة معاً; على سبيل المثال، يمكن استدعاء أساليب متعددة في حدث واحد.

  • لا يلزم للأساليب أن تكون مطابقة تماماً لتوقيع التفويض. لمزيد من المعلومات، راجع التباين و Contravariance في مفوضون (C# البرمجة الدليل).

  • تم تقديم مفهوم الأساليب المجهولة في الإصدار 2.0 من #C والذي يسمح بتمرير كتل التعليمات البرمجية كمعلمات بدلاً من تمرير أسلوب مُعرّف بشكل منفصل. وتم تقديم تعبيرات لامدا في الإصدار 3.0 من #C لتكون طريقة كتابة أكثر إيجازاً لكتل التعليمات البرمجية المضمنة. يتم التحويل البرمجي للأساليب المجهولة وتعبيرات لامدا (في سياقات معينة) إلى تفويضات. معاً، هذه الميزات تُعرف الآن بالدوال المجهولة. لمزيد من المعلومات حول تعبير لامدا، راجع دالات المجهول ( ارشادات برمجة C# ).

في هذا القسم

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

الأحداث (دليل البرمجة لـ #C)

Delegate

المبادئ

دليل البرمجة لـ #C