PDA

View Full Version : what is delegate فقط بصورت کاربردی؟



khafanovich
دوشنبه 21 اردیبهشت 1383, 11:09 صبح
سلام دوستان خسته نباشید.من به تازگی رو سی شارپ سویچ کردم.
مطالب زیادی در مورد delegate ها بصورت پراکنده خواندم.میخواستم ببینم کسی میتونه یک تعریف کاربردی از Delegate ها برای من بیان کنه و بگه که کاربردش چیه؟
اگه توضیحات تخصصی تر هم بدهید ممنون میشوم.

Farhad.B.S
دوشنبه 21 اردیبهشت 1383, 18:31 عصر
Delegate ها اشیایی هستند که مشخصات یک تابع با پراسیجر رو نگهداری میکنند.

فرض کنید میخواید یه تابع بنویسید (با نام F1) که به عنوان پارامتر یه تابع دیگه رو (با نام F2) میگیره و اون رو اجرا میکنه ،
اولین مرحله اینه که مشخص کنید F2 چه مشخصاتی باید داشته باشه (تعداد پارامتر ها ، نوع داده ای اونها و ...) سپس میتونید یک delegate تعریف کنید که بیانگر این مشخصات باشد و پارامتر ورودی تابع F1 رو از جنس این delegate در نظر بگیرید.




public delegate int MyDelegate (int param1,int param2);

public int F1 (MyDelegate input_function)
{
return input_function(10,10);
}

// it must similar to MyDelegate
public int F2 (int param1, int param2)
{
return param1 + param2;
}

public void Main()
{
//use of F1 :
F1(new MyDelegate(F2));

}