English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Action هو نوع بروتوكول تعميم تم تعريفه في مساحة الأسماء System. نوع البروتوكول التعميم Action هو نفسه مثل بروتوكول تعميم Func، باستثناء أن بروتوكول تعميم Action لا يعود أي شيء. بمعنى آخر، يمكن استخدام بروتوكول تعميم Action مع طرق العودة void.
Action<T> هو بروتوكول تعميم مدمج في .NET Framework، يمكن استخدامه لتقديم إجراءات بروتوكول تعميم دون الحاجة إلى إعلان بروتوكول تعميم مخصص. يجب أن يتطابق الإجراء المدمج مع اسم البروتوكول التعميم المحدد. بمعنى آخر، يجب أن يكون لديه دالة واحدة يتم إرسالها إليها عن طريق التمرير بسلسلة القيمة ولا يمكن أن يكون لها أي عودة.
على سبيل المثال،يحوي هذا الوسيط على قيمة int ويقوم بطباعةها.
public delegate void Print(int val); static void ConsolePrint(int i) { Console.WriteLine(i); } static void Main(string[] args) { Print prnt = ConsolePrint; prnt(10); }
10
يمكنك استخدام Action الوسيط بدلاً من وسيط Print المحدد مسبقًا،مثل:
static void ConsolePrint(int i) { Console.WriteLine(i); } static void Main(string[] args) { Action<int> printActionDel = ConsolePrint; printActionDel(10); }
يمكنك استخدام كلمة المفتاح new أو تخصيص دالة مباشرة لتعريف Action الوسيط:
Action<int> printActionDel = ConsolePrint; //أو Action<int> printActionDel = new Action<int>(ConsolePrint);
يمكن لـ Action الوسيط استقبال على الأكثر 16 معاملًا من أنواع مختلفة.
يمكن أيضًا تخصيص دالة مجهولة لـ Action الوسيط،مثل:
static void Main(string[] args) { Action<int> printActionDel = delegate(int i) { Console.WriteLine(i); }; printActionDel(10); }
10
يمكن أيضًا استخدام تعبير Lambda مع Action الوسيط:
static void Main(string[] args) { Action<int> printActionDel = i => Console.WriteLine(i); printActionDel(10); }
لذلك،يمكنك استخدام أي دالة لا تستخدم نوع Action الوسيط كقيمة عائدة.
Action الوسيط يمكنه استقبال على الأقل 0 معامل،وحتى 16 معامل،بدون أي قيمة عائدة.
Action يعني وسيط بدون معاملات،بدون أي قيمة عائدة.
Action<int,string> يعني وسيط به معاملات int،string،بدون أي قيمة عائدة.
Action<int,string,bool> يعني وسيط به معاملات int،string،bool،بدون أي قيمة عائدة.
Action<int, int, int, int> تعني وكلاء لا يدخلون 4 معاملات من نوع int ولا يعودون بأي شيء.
تعريف الوكلاء بسهولة وسرعة.
جعل الكود قصيرًا.
النوع المتوافق في جميع أنحاء التطبيق.
وكلاء Action مشابهين لوكلاء Func، ولكن وكلاء Action لا يعودون بأي شيء. يجب أن يكون النوع العائد void.
يمكن أن يكون لدي وكلاء Action من 0 إلى 16 معاملات.
يمكن استخدام وكلاء Action مع الطريقة الغير معروفة أو التعبيرات lambda.