PDA

View Full Version : delegte



MBT1900x
یک شنبه 16 مرداد 1384, 09:51 صبح
سلام.
من یک برنامه نویس تازه کار هستم(و کم استعداد) و چیز زیادی درباره delegate نمی دانم .
لطفا کد زیر را برای من به طور کامل (نکته به نکته) تشریح کنید(البه اگر زحمتی نیست).
و اگر مثال , مقاله یا هر چیز دیگری(اطلاعات و راهنمایی های شخص شما) در رابطه با موضوع سراغ دارید دریغ نکنید(لطفا).
همچنین در رابطه با کاربردها و مزیت استفاده از آنها هم توضیح دهید.

delegate" یکی از انواع ارجاعی است که وامضای فراخوانی یک متد را تعریف , و سپس متد های مطابق با فرمت تعریف شده را پذیرفته و اجرا می کند.delegate ها اغلب با واسط ها(interface)مقاسیه می شوند . واسط ها یک نوع ارجاعی است که طرح یک متد را مشخص می کند اما عملکرد مورد نیاز آن را پیاده سازی نمی نماید . delegate ها از این منظر مشابه واسط است زیرا طرح یک متد را بدون تعریف آن مشخص می کند . در مقابل متدهایی که طرح آنها با امضای delegate تطبیق می کند را اجرا می نماید."

اینها تمام چیزی است که من درباره delegate می دانم (به طور تئوری می فهمم).

پیشاپیش از تمام دوستان عزیز تشکر می کنم .(ممکن است یکی دو روزی نتوانم کانکت شوم)




//ConsoleApplication "Delegate"
using System;

namespace Delegate
{
public class SortClass
{
static public int val1;
static public int val2;

public delegate void Sort(ref int a,ref int b);


public void DoSort(Sort ar)
{
ar(ref val1,ref val2);
}
}
class Class1
{
public static void Ascending(ref int first,ref int second)
{
if (first > second)
{
int tmp = first;
first = second;
second = tmp;
}
}
public static void Descending(ref int first,ref int second)
{
if(first < second )
{
int tmp = first;
first = second;
second = tmp;
}
}
static void Main(string[] args)
{
SortClass.Sort up = new Delegate.SortClass.Sort(Ascending);
SortClass.Sort down = new Delegate.SortClass.Sort(Descending);

SortClass doIT = new SortClass();

SortClass.val1 = 310;
SortClass.val2 = 220;

Console.WriteLine("Before Sort:val1 = {0} ,val2 = {1}",
SortClass.val1,SortClass.val2);
doIT.DoSort(up);
Console.WriteLine("\nAfter Sort:val1 = {0},val2 = {1}",
SortClass.val1,SortClass.val2);
Console.WriteLine("====================================");
Console.WriteLine("Before Sort:val1 = {0} ,val2 = {1}",
SortClass.val1,SortClass.val2);
doIT.DoSort(down);
Console.WriteLine("\nAfter Sort:val1 = {0},val2 = {1}",
SortClass.val1,SortClass.val2);

Console.ReadLine();
}
}
}

Babak-Aghili
یک شنبه 16 مرداد 1384, 09:56 صبح
یک سرچ بزنید ...

آقای زواری لطف کرده بودند و مطلبی در همین رابطه در سایت قرار داده بودند.