آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

متدهای anonymous در C#

دوره های مرتبط با این مقاله

متدهای anonymous

همان‌طور که بررسی کردیم، نماینده‌ها در اشاره به متدهایی کاربرد دارند که امضای آن‌ها مانند امضای این نماینده‌ها است. به بیان دیگر می‌توانید متدی را فراخوانی کنید که بتوان توسط یک نماینده و با استفاده از شیء این نماینده به آن اشاره کرد.
متدهای anonymous تکنیکی را فراهم می‌کنند که با کمک آن می‌توان بلوکی از کد را به عنوان یک پارامتر نماینده رد کرد. این متدها درست مانند بدنه متدهای بدون نام هستند.
نیازی به برگشت دادن نوع متدهای anonymous نیست. زیرا این نوع‌ها از دستور برگشتی داخل بدنه‌ی متد استنتاج می‌شوند.


نوشتن متدهای anonymous

متدهای anonymous با ایجاد نمونه‌ی نماینده به کمک واژه‌ی کلیدی delegate اعلان می‌شوند. مانند زیر:

delegate void NumberChanger(int n);
...
NumberChanger nc = delegate(int x) {
 Console.WriteLine("Anonymous Method: {0}", x);
};

بلوک کد Console.WriteLine("Anonymous Method: {0}", x); بدنه‌ی این متد anonymous است.
نماینده را می‌توان از طریق متدهای anonymous و از طریق متدهای نام دار به شیوه‌ای یکسان فراخوانی کرد. یعنی به این صورت که پارامترهای متد به شیء نماینده رد شوند.
برای مثال:

nc(10);

مثال

در مثال زیر این مفهوم توضیح داده شده است:

using System;
delegate void NumberChanger(int n);
namespace DelegateAppl {
 class TestDelegate {
 static int num = 10;
      
 public static void AddNum(int p) {
 num += p;
 Console.WriteLine("Named Method: {0}", num);
 }
 public static void MultNum(int q) {
 num *= q;
 Console.WriteLine("Named Method: {0}", num);
 }
 public static int getNum() {
 return num;
 }
 static void Main(string[] args) {
//create delegate instances using anonymous method
 NumberChanger nc = delegate(int x) {
 Console.WriteLine("Anonymous Method: {0}", x);
 };
         
//calling the delegate using the anonymous method
 nc(10);
         
//instantiating the delegate using the named methods
 nc = new NumberChanger(AddNum);
         
//calling the delegate using the named methods
 nc(5);
         
//instantiating the delegate using another named methods
 nc = new NumberChanger(MultNum);
         
//calling the delegate using the named methods
 nc(2);
 Console.ReadKey();
 }
 }
}

زمانی که کد بالا کامپایل و اجرا شود، نتیجه به صورت زیر نمایش داده می‌شود:

Anonymous Method: 10
Named Method: 15
Named Method: 30

  • 215
  •    238
  • تاریخ ارسال :   1397/08/23

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .