فرض کنید متود ساده زیر را داریم و میخواهیم به عنوان پارامتر به متود دیگری ارسال کنیم
public void DisplayNumber(int num)
{
MessageBox.Show(string.Format("The value is {0}", num));
}
ابتدا نوع داده ای جدیدی ازdelegate با همین signature یعنی از نوع void و با پارامتر ی از نوع int تعریف می کنیم:
public delegate void ProcessNumber(int number);
سپس متغیری از نوع داده ا ی delegate تعریف شده به صورت زیر اعلان میکنیم :
ProcessNumber pn = new ProcessNumber(DisplayNumber);
حال میتوان این متغیر را به عنوان پارامتر به هر متود دلخواهی صادر کرد (مثلا متود زیر):
public int MultiplyNumbers(int a, int b, ProcessNumber pn)
{
int op = a * b;
pn(op);
return op;
}
با این فراخوانی :
MultiplyNumbers(4, 5, pn);
منبع:سری های آموزشی TestOut C# for programmers
http://www.testout.com




 
			
			
 
					
					
					
						 پاسخ با نقل قول
  پاسخ با نقل قول 
			