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

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


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

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

9   голосов , оценка 3.778 из 5
Похожие ответы