Action Delegate در زبان #C
Action ها به کمک برنامه نویسانی آمده است که می خواهند کدهای خواناتر، به عبارت دیگر کدهای expressive تر (رسا تر) داشته باشند که در آموزش سی شارپ داری اهمیت زیادی است. در این بخش از آموزش زبان سی شارپ با Action delegate آشنا می شویم.
Action یک نوع delegate است که در فضای نام سیستم تعریف شده است. یک delegate از نوع action همان Func delegate است با این تفاوت که Action delegate مقداری را بر نمی گرداند. به عبارت دیگر، یک Action delegate را می توان با متدی استفاده کرد که نوع بازگشتی آن void است.
به عنوان مثال، delegate زیر یک مقدار int را چاپ می کند.
خروجی کد بالا در ادامه نشان داده شده است.
شما می توانید به جای تعریف Print delegate بالا از یک Action delegate استفاده کنید، به عنوان مثال:
خروجی کد بالا در ادامه نشان داده شده است.
می توانید با استفاده از کلمه کلیدی new یا با اختصاص مستقیم یک متد، یک Action delegate را مقداردهی اولیه کنید:
یک Action delegate می تواند تا 16 پارامتر ورودی از انواع مختلف را دریافت کند.
یک متد Anonymous را نیز می توان به یک Action delegate اختصاص داد، برای مثال:
>
خروجی کد بالا در ادامه نشان داده شده است.
یک عبارت Lambda همچنین می تواند با یک Action delegate استفاده شود:
خروجی کد بالا در ادامه نشان داده شده است.
بنابراین، می توانید بااستفاده از انواع Action delegate از هر متدی که مقداری را بر نمی گرداند استفاده کنید.
مزایای delegate های از نوع Action و Func
1- آسان و سریع برای تعریف delegates
2- کد را کوتاه می کند.
3- سازگار در سراسر برنامه
نکاتی که در مورد Action delegate ها در زبان برنامه نویسی سی شارپ باید به خاطر بسپارید:
1- Action delegate همان func delegate است با این تفاوت که چیزی را بر نمی گرداند. نوع بازگشتی باید void باشد.
2- Action delegate می تواند 0 تا 16 پارامتر ورودی داشته باشد.
3- Action delegate را می توان با متد های anonymous یا عبارات lambda استفاده کرد.