Объяснить, как работает код с делегатами и лямбда-выражениями - C#
Формулировка задачи:
Есть готовое решение, которое надо доработать под себя. Но не могу разобраться, как работает...
Растолкуйте, плиз, начинающему программеру, как работает этот код:
Листинг программы
- public ICommand ShowWindowCommand
- {
- get
- {
- return new DelegateCommand
- {
- CanExecuteFunc = () => Application.Current.MainWindow == null,
- CommandAction = () =>
- {
- Application.Current.MainWindow = new MainWindow();
- Application.Current.MainWindow.Show();
- }
- };
- }
- }
- public class DelegateCommand : ICommand
- {
- public Action CommandAction { get; set; }
- public Func<bool> CanExecuteFunc { get; set; }
- public void Execute(object parameter)
- {
- CommandAction();
- }
- public bool CanExecute(object parameter)
- {
- return CanExecuteFunc == null || CanExecuteFunc();
- }
- public event EventHandler CanExecuteChanged
- {
- add { CommandManager.RequerySuggested += value; }
- remove { CommandManager.RequerySuggested -= value; }
- }
- }
Решение задачи: «Объяснить, как работает код с делегатами и лямбда-выражениями»
textual
Листинг программы
- return Application.Current.MainWindow == null
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д