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
Другие вопросы по тегам