C#: расширение от более чем 1 класса
Предположим, у меня есть ViewModel TabViewModel
что расширяет ObservableObject
класс для ViewModels в MVVM Foundation Framework. Тогда у меня также есть EditorTabViewModel
это расширяет TabViewModel
Теперь мне нужно продлить DependencyObject
реализовать DependencyProperties. Я не могу продлить более 1 класса. Как я могу реализовать это? Я мог бы иметь "промежуточный" класс, как...
TabViewModel : ObservableObject
EditorTabViewModel : TabViewModel
DependentEditorTabViewModel : DependencyObject
но это 1 дополнительный ненужный класс. Есть ли лучший способ сделать это?
ОБНОВИТЬ
Шеф на самом деле я не могу сделать выше. DependentEditorTabViewModel
все еще нужно расширить EditorTabViewModel ... кроме DependencyObject
2 ответа
C# не поддерживает множественное наследование. Лучше всего использовать интерфейсы, а не родительские классы.
Даже если у вас нет возможности использовать интерфейсы (возможно, у вас нет доступа к коду), как правило, лучше отдавать предпочтение композиции, а не наследованию. Вам действительно нужно наследовать оба этих класса, или вы можете вместо этого создавать их?
Это не лишний класс, если вы выполняете то, что вам нужно. Вот как бы вы поступили об этом:
DependentEditorTabViewModel : DependencyObject
TabViewModel : DependentEditorTabViewModel