با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم .در بخش قبل با Func و کاربرد آن در زبان #C آشنا شدید ، در این بخش قصد داریم در رابطه با Action Delegate در #C و مزایای Action Delegates صحبت کرده و آن را شرح دهیم . تا پایان این جلسه همراه ما باشید.
Action نیز نوعی delegate تعریف شده در فضای نام System است. نماینده Action همان نماینده Func است به جز اینکه نماینده Action مقداری را به عنوان خروجی نشان نمی دهد. به عبارت دیگر، یک نماینده Action می تواند با یک متد که نوع بازگشتی ندارد (void) استفاده شود.
برای مثال، مثال زیر را در نظر بگیرید که یک مقدار int را چاپ می کند.
1 2 3 4 5 6 7 8 9 10 11 12 | public delegate void Print(int val); static void ConsolePrint(int i) { Console.WriteLine(i); } static void Main(string[] args) { Print prnt = ConsolePrint; Prnt(10); } |
خروجی :
1 | 10 |
شما می توانید به جای تعریف نماینده Print بالا از Action delegateاستفاده کنید، مثلا:
1 2 3 4 5 6 7 8 9 10 | static void ConsolePrint(int i) { Console.WriteLine(i); } static void Main(string[] args) { Action<int> printActionDel = ConsolePrint; printActionDel(10); } |
شما می توانید یک Action delegate با استفاده از کلمه کلیدی new یا به طور مستقیم با تعیین یک متد، تعریف کنید:
1 2 3 4 5 | Action<int> printActionDel = ConsolePrint; //Or Action<int> printActionDel = new Action<int>(ConsolePrint); |
نماینده اقدام می تواند تا ۱۶ پارامتر ورودی انواع مختلفی را بگیرد ، یک Anonymous method نیز می تواند به یک Action delegate اعطا شود، مثلا:
1 2 3 4 5 6 7 8 9 | static void Main(string[] args) { Action<int> printActionDel = delegate(int i) { Console.WriteLine(i); }; printActionDel(10); } |
خروجی :
1 | 10 |
عبارت Lambda همچنین می تواند با Action delegate استفاده شود:
1 2 3 4 5 6 7 | static void Main(string[] args) { Action<int> printActionDel = i => Console.WriteLine(i); printActionDel(10); } |
بنابراین، شما می توانید از هر متدی که خروجی ای را برنمیگرداند با Action delegate استفاده کنید .
در این بخش با Action delegate ها در زبان #C آشنا شدید ، در بخش بعدی قصد داریم شما را با Predicate Delegate ها در این زبان آشنا کنیم.
حسین
عالیه. بهترین و روان ترین آموزشی که برای Action دیدم همین آموزشه.خیلی ممنون.