HOW 2 LEARN ASP.NET
نویسنده : delshad
تاریخ  : ۱۳۸۸/۲/۸
امتیاز :
بازدید : 2443
موضوع : کار با Delegate در Asp.NET
توضیحات : در این مقال نحوه استفاده از Delegate در وب آموزش داده می شود
     

 Delegate چیست ؟

مبحث Delegate در دات نت مشابه Pointer to Function در c و C++ می باشد که خیلی از شما با آن آشنایی دارید ، به زبان ساده یک Delegate یک شی است که به یک متد اشاره می کند .

اجازه بدهید با یک مثال مطلب را کمی روشن کنیم .

یک کلاس جدید به نام Calculate می سازیم و متد های Add , MutiPly , Devide را در آن پیاده سازی می کنیم :

public class Math
  {
    public static int Add(int first, int second)
    {
      return first + second;
    }

    public static int Multiply(int first, int second)
    {
      return first * second;
    }

    public static int Divide(int first, int second)
    {
      return first / second;
    }
  }

صفحه ای به نام Delegate.aspx به پروژه اضافه می کنیم و در زیر روال لود صفحه به صورت زیر از Delegate استفاده می کنیم :

    public delegate int DelegateToMethod(int x, int y);
    protected void Page_Load(object sender, EventArgs e)
    {
        // My Class
        DelegateToMethod AddDelegate = new DelegateToMethod(Calculate.Add);
        DelegateToMethod multiplyDelegate = new DelegateToMethod(Calculate.Multiply);
        DelegateToMethod devideDelegate = new DelegateToMethod(Calculate.Divide);
        
        // Dotnet Class
        DelegateToMethod maxDelegate = new DelegateToMethod(Math.Max);
        DelegateToMethod minDelegate = new DelegateToMethod(Math.Min);


        Response.Write("جمع:" + AddDelegate(1, 2).ToString() + "<br>");
        Response.Write("ضرب:" + multiplyDelegate(1, 2).ToString() + "<br>");
        Response.Write("تقسیم:" + devideDelegate(1, 2).ToString() + "<br>");
        Response.Write("بزرگتر:" + maxDelegate(1, 2).ToString() + "<br>");
        Response.Write("کوچکتر:" + minDelegate(1, 2).ToString() + "<br>");
    }

 

همانطور که ملاحظه می کنید متد ها همانند یک متغیر به Delegate ها پاس شده اند بنابراین ساختار یک Delegate (تعداد و جنس ورودی و مقدار خروجی) تعیین کننده نحوه استفاده از آن می باشد .

در کد های فوق ما متد های هم ساختار را از دو کلاس مختلف در یک جا کپسوله کردیم و از آن ها استفاده نمودیم .

علاوه بر این Delegate کاربر وسیع تری در نرم افزار های تحت ویندوز و همچنین کلاس های رویداد گرا دارد که خاریج از بحث ما می باشد .

فایل پروژه را از اینجا دانلود کنید


 

 

 
امتیاز بدهید :

هیچ نظری داده نشده است

 
نظر بدهید :
لطفا سوالات فنی خود را در تالار گفتگو www.forum.how2learnasp.net مطرح نمایید
نام :  
ایمیل :    
نظرات :
 
Xml rss feed

 

Valid CSS! Atom rss feed
Ali Delshad Official Site