کار با Delegate در Asp.NET

شنبه 25 خرداد 1392

کار با Delegate در Asp.NET <br/> Delegate چیست ؟ <br/> مبحث Delegate در دات نت مشابه Pointer to Function در c و C++ می باشد که خیلی از شما با آن آشنایی دارید ، به زبان ساده یک 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 کاربر وسیع تری در نرم افزار های تحت ویندوز و همچنین کلاس های رویداد گرا دارد که خاریج از بحث ما می باشد .

فایل های ضمیمه

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید