Объяснить, как работает код с делегатами и лямбда-выражениями - 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