Допустим, нужно реализовать что-то подобное:
class MyControl1: Control
{
protected override void OnPreRender(EventArgs e)
{
// действия A
}
protected override void Render(HtmlTextWriter writer)
{
// действия B
}
}
class MyControl2: WebControl
{
protected override void OnPreRender(EventArgs e)
{
// действия A
}
protected override void Render(HtmlTextWriter writer)
{
// действия B
}
}
Как вынести общую функциональность (действия A и B)?
Здравствуйте, arbidol, Вы писали:
A>Допустим, нужно реализовать что-то подобное:
A>A>class MyControl1: Control
A>{
A> protected override void OnPreRender(EventArgs e)
A> {
A> // действия A
A> }
A> protected override void Render(HtmlTextWriter writer)
A> {
A> // действия B
A> }
A>}
A>class MyControl2: WebControl
A>{
A> protected override void OnPreRender(EventArgs e)
A> {
A> // действия A
A> }
A> protected override void Render(HtmlTextWriter writer)
A> {
A> // действия B
A> }
A>}
A>
A>Как вынести общую функциональность (действия A и B)?
Сдеся легко. WebControl наследуется от Control. Так что можно сделать следующее:
class MyBaseControl:WebControl
{
...
}
class MC1 : MyBaseControl
{
... // specific
}
class MC2 : MyBaseControl
{
... // specific
}
Почему бы действия А и действия Б не вынести в статические методы какого-либо helper-класса, в параметрах которых передается Control и доп. объекты контекста?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>