کار با 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 کاربر وسیع تری در نرم افزار های تحت ویندوز و همچنین کلاس های رویداد گرا دارد که خاریج از بحث ما می باشد .
- ASP.net
- 2k بازدید
- 0 تشکر