تعریف Delegate در #C و نحوه ایجاد آن

دوشنبه 24 فروردین 1394

در این مقاله نحوه ایجاد Delegate در #C را شرح خواهیم داد

معنای لغوی Delegate انجام کاری خاص توسط یک فرد برای فردی دیگر میباشد و در زبان #C به معنی انجام عملیات یک متد برای متد دیگری میباشد .

Delegate یک کلاس از نوع شئی می باشد که بجای اطلاعات حاوی جزئیات متد  می باشد .برای متدهایی استفاده میشوند که در زمان ایجاد کپسوله سازی شده اند .Delegate برای دو هدف ایجاد میشود :

یکی از امکانات Delegate این است که میتواند refrence یک متد هر کلاسی را نگه می دارد .تنها نیازمند این است که نمونه آن با نمونه متد مورد نظر تطابق داشته باشد .

1 - Call back

2 - Event handling

برای ایجاد و استفاده از Delegate چهار مرحله را باید طی نمود :

1 : تعریف Delegate

2 : نمونه سازی از Delegate

3 : تعریف متد برای Delegate مورد نظر

4 : جمع بندی و بکارگیری Delegate

انواع سطح دسترسی برای استفاده از Delegate

Public

Private

Protected

Internal

به مثال زیر توجه فرمایید :

    //delegate declaration  
    Delegate voin Sanjibdelegate();  
    Class A  
    {   //instance delegate method  
        Public void DispalyA()  
        {  
            Console.writeline(“Display A”);  
        }  
    }  
    Class B  
    {  
        //static delegate method  
        Static public void DisplayB()  
        {  
            Console.writeline(“Display B”);  
        }  
    }  
    //delegate instance  
    A mya = new A();  
    Sanjibdelegate san = new Sanjibdelegate(mya.DisplayA);  
    //static method call here direct with class name.  
    Sanjibdelegate del = new Sanjibdelegate(B.DisplayB);  

Multicast delegate چیست ؟

یک متد که چند متد را در خود جای می دهد.همچنین Combinable delegate نیز نام دارد .

نکته : برای استفاده از Delegate باید شرایط زیر را در نظر بگیریم :

1 - نوع داده ای که باز می گرداند حتمی باید Void باشد .

2 - هیچ کدام از پارامترهای Delegate نمی تواند به عنوان پارامتر تولید شود .

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

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

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

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