У меня есть общие части для всего пользовательского контроля. Это определено в интерфейсе, скажем, MyInterface.
Затем я реализую часть этого класса, скажем, MyBaseClass:
class MyBaseClass : MyInterface
{
//......
}
Тогда, когда я создаю пользовательский элемент управления, я хочу, чтобы этот пользовательский элемент управления имел реализацию общей части. Поэтому я хочу изменить код для MyControl следующим образом:
public partial class MyControl : UserControl, MyBaseClass
{
public MyControl()
{
InitializeComponent();
}
}
но система выдаст мне ошибку. причина: Mybase не является частичным классом. если изменить MyBaseClass как частичный, все равно получите ошибку, скажем что-то вроде «не разрешать множественный базовый класс».
Одно решение похоже на
public partial class MyUserControl : UserControl, MyInterface
{
public MyUserControl ()
{
InitializeComponent();
}
}
но это приведет к дублированию реализации для каждого пользовательского элемента управления. Многие копируют и вставляют. Я не хочу к этому пути.
Пробовал следующим образом:
public class MyBaseClass : UserControl, MyInterface
или
public partial class MyBaseClass : UserControl, MyInterface
Я получил ошибку:
Частичные объявления MyUserControl не должны указывать разные базовые классы
Как решить эту проблему?