تعریف 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 نمی تواند به عنوان پارامتر تولید شود .
- C#.net
- 3k بازدید
- 3 تشکر