base.CanExecute += (s, e) =>
{
bool handled;
e.CanExecute = _commandSink.CanExecuteCommand(e.Command, e.Parameter, out handled);
e.Handled = handled;
};
То, что вы видите здесь, это лямбда в C # 3.
В C # 2 это будет: -
base.CanExecute += delegate(object s, EventArgs e)
{
bool handled;
e.CanExecute = _commandSink.CanExecuteCommand(e.Command, e.Parameter, out handled);
e.Handled = handled;
};
C # 3 допускает это (s, e) сжатие, поскольку оно может подразумевать типы с правой стороны (он может видеть, что CanExecute принимает тип делегата и какие типы имеют его параметры).
=> выражает функцию для выполнения, часто скобки не нужны для простого однострочного выражения.