Зачем в этом примере наследование? - C#

Узнай цену своей работы

Формулировка задачи:

Для того что бы лучше разбираться в программировании изучаю исходный код других программ. Встретил такой код:
Листинг программы
  1. /// <summary>
  2. /// The base implementation of a command.
  3. /// </summary>
  4. public abstract class CommandBase
  5. : ICommand
  6. {
  7. public event EventHandler CanExecuteChanged
  8. {
  9. add { System.Windows.Input.CommandManager.RequerySuggested += value; }
  10. remove { System.Windows.Input.CommandManager.RequerySuggested -= value; }
  11. }
  12. public void OnCanExecuteChanged()
  13. {
  14. System.Windows.Input.CommandManager.InvalidateRequerySuggested();
  15. }
  16. public virtual bool CanExecute(object parameter)
  17. {
  18. return true;
  19. }
  20. public void Execute(object parameter)
  21. {
  22. if (!CanExecute(parameter)) {
  23. return;
  24. }
  25. OnExecute(parameter);
  26. }
  27. protected abstract void OnExecute(object parameter);
  28. }
Листинг программы
  1. /// <summary>
  2. /// The command that relays its functionality by invoking delegates.
  3. /// </summary>
  4. public class RelayCommand
  5. : CommandBase
  6. {
  7. private Action<object> execute;
  8. private Func<object, bool> canExecute;
  9. public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null)
  10. {
  11. if (execute == null) {
  12. throw new ArgumentNullException("execute");
  13. }
  14. if (canExecute == null) {
  15. canExecute = (o) => true;
  16. }
  17. this.execute = execute;
  18. this.canExecute = canExecute;
  19. }
  20. public override bool CanExecute(object parameter)
  21. {
  22. return canExecute(parameter);
  23. }
  24. protected override void OnExecute(object parameter)
  25. {
  26. execute(parameter);
  27. }
  28. }
Не могу понять, зачем здесь нужен виртуальный класс и наследование?

Решение задачи: «Зачем в этом примере наследование?»

textual
Листинг программы
  1. public class RelayAsyncCommand: CommandBase
  2. {
  3. .......
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы