PDA

View Full Version : سوال: چطور میتونم متد یک کنترل رو override کنم ؟



dr_csharp
یک شنبه 29 اردیبهشت 1387, 14:19 عصر
سلام
چطور میشه متد یک کنترل ویژوال استودیو را Override کرد یا روی اون تغییراتی اعمال نمود ؟

Behrouz_Rad
یک شنبه 29 اردیبهشت 1387, 14:31 عصر
اگر Overridable یا virtual باشه، می تونی با ذکر نام و امضای اون، Override اش کنی.

dr_csharp
یک شنبه 29 اردیبهشت 1387, 14:44 عصر
اگر Overridable یا virtual باشه، می تونی با ذکر نام و امضای اون، Override اش کنی.
1-چطور باید بفهمیم این قابلیت هارو داره ؟
2-مثلا متد AddAttributesToRender (http://msdn.microsoft.com/en-us/library/aa338806(VS.71).aspx) قابل override کردنه ولی من وقتی میزنم.. protected override void AddAtt اونو نشون نمیده !؟

Behrouz_Rad
یک شنبه 29 اردیبهشت 1387, 15:45 عصر
1-چطور باید بفهمیم این قابلیت هارو داره ؟

کافیه به امضای متد نگاه کنی و کلمات Overridable یا virtual رو ببینی.


2-مثلا متد AddAttributesToRender قابل override کردنه ولی من وقتی میزنم.. protected override void AddAtt اونو نشون نمیده !؟

نحوه ی استفادت اشتباه بوده.
تمامی کنترل ها، متد AddAttribtutesToRender اشون رو از کلاس WebControl ارث می برن.
اگر کلاست رو از یکی از این کنترل ها یا کلاس WebControl مشتق کرده باشی، protected override که بنویسی، لیستی از تمامی متدهای قابل override شدن نشون داده میشن.

موفق باشید

dr_csharp
یک شنبه 29 اردیبهشت 1387, 16:21 عصر
اگر کلاست رو از یکی از این کنترل ها یا کلاس WebControl مشتق کرده باشی، protected override که بنویسی، لیستی از تمامی متدهای قابل override شدن نشون داده میشن.
ببینید :

publicpartialclass_Default : System.Web.UI.Page,System.Web.UI.WebControls
ولی باز هم AddAttributesToRender (http://msdn.microsoft.com/en-us/library/aa338806(VS.71).aspx) رو ندارم !؟

Amir Taghavi
یک شنبه 29 اردیبهشت 1387, 16:25 عصر
نباید هم داشته باشی!


public partial class MyClass : System.Web.UI.WebControls.WebControl
{
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
}
}