Tving subclass til at kalde en metode i en super class
Jeg har MyPage.aspx og BasePage.cs MyPage nedarver fra BasePage
Jeg vil gerne være sikker på, at MyPage kalder metoden MyMethod som ligger i BasePage. Er der nogen mulighed for at lave et compile-time check af dette?
Lige nu tester jeg i BasePage´s OnPrerender event for om en bestemt variabel har en værdi, men jeg mener at have læst et sted, at det er muligt at gøre dette på en bedre måde.
Nuværende kode(BasePage.cs):
public void MyMethod(int id) { this.id= id;
}
protected override void OnPreRender(EventArgs e) { if (this.id== 0) { throw new Exception("You must call MyMethod"); }
Hvordan vil du gøre det? Hvordan vil du overloade constructoren i en side der nedarver fra System.Web.UI.Page og derefter sende en parameter med fra sub-klassen?
Det kunne jeg godt gøre, men det er ikke den store forskel, da jeg stadig skal teste for om værdien er sat i OnPrerender i min super-class. Med mindre jeg fjerner min parameterløse default constructor fra min super-class, men det er såvidt jeg ved ikke tilladt.
Jo det kan du sagtens gøre, så du tvinger subklassen til at kalde superklassens constructor med det angivne parameter.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.