متدهای بی نام (Anonymous) در سی شارپ

چهارشنبه 6 خرداد 1394

در این مقاله راجع به متدهای بی نام (Anonymous) در سی شارپ بحث خواهیم کرد. متدهای بی نام (Anonymous) تکنیکی برای پاس دادن یک تکه کد به عنوان پارامتر delegate می باشد. این متدها، متدهایی بدون نام هستند که فقط یک بدنه دارند.

متدهای بی نام (Anonymous) در سی شارپ

متدهای بی نام (Anonymous) تکنیکی برای پاس دادن یک تکه کد به عنوان پارامتر delegate می باشد. این متدها، متدهایی بدون نام هستند که فقط یک بدنه دارند.

شما نیاز به نشان دادن مقدار بازگشتی یک متد بی نام ندارید.

ما بدون متد بی نام یک برنامه کاربردی نمایشی برای انجام برخی مسائل می سازیم. و قادر به استفاده از متد بی نام برای دریافت کارکرد مشابه خواهیم بود و میتوانیم اختلاف بین دو کارکرد را چک کنیم.

عدم استفاده از متدهای بی نام:

کدهای زیر را در برنامه کنسول بنویسید.

   
    delegate int Mydel(int a, int b);  
      
      class Program  
      {  
          public static int Add(int x,int y)  
          {  
              int sum = x + y;           
              return sum;  
          }  
          static void Main(string[] args)  
          {            
             Mydel obj = Add;             
             int result= obj.Invoke(12, 13);  
             Console.WriteLine("The sum is : " + result);  
             Console.ReadLine();  
          }  
      }  

در مثال قبلی یک متد Add داریم که دو ورودی از نوع عددی میگیرد. ما یک delegate داریم که منبع متد Add را نگهداری میکند.

حال وقتی که ما این delegate را درخواست می کنیم و مقداری را به آن پاس میدهیم، متد زوج را فراخوانی میکند که مجموع پارامترهای ورودی را برگردانده و در یک صفحه خروجی نمایش می دهد.

خروجی این برنامه را مشاهده کنید.

استفاده از متد بی نام:

فرض می کنیم که تعداد ورودی ها در نقطه مشخصی از زمان افزایش یابند، سپس بخواهیم یک ورودی جدید اضافه کنیم، پاس دادن این مقدار در هر زمانی امکان پذیر است؟ به جای کار تکراری از متدهای بی نام استفاده می کنیم.

ما خواهیم توانست مثال قبلی را با متد بی نام پیاده سازی کنیم. کدهای زیر را در برنامه کنسول خود بنویسید.


    delegate int Mydel(int a,int b);  
      
       class Program  
       {  
           static void Main(string[] args)  
           {  
               Mydel del = delegate(int x, int y)  
               {  
                   return x + y;  
               };  
               int result=del.Invoke(12,13);   
               Console.WriteLine(result);   
               Console.ReadLine();    
           }   
         }   

همانطور که که میبینید، برنامه قبلی دارای متد بی نام مشخصی است که شامل کدی برای افزودن اعداد است. پس با استفاده از متدهای بی نام، می توانیم خطهای کد را کاهش دهیم (زیرا ما تابع Add را در این گزینه حذف کردیم).

خروجی حاصل از این برنامه را می بینیم.

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 3 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید