Почему параметрический усилитель в этом лямбда-выражении?

Статья MSDN Magazine Josh Smith на MVVM содержит лямбда-выражение, которое я не полностью понимаю. Какова цель параметрического усилителя в этом коде?

_saveCommand = new RelayCommand(param => this.Save(),
                param => this.CanSave );

Переведенный на мой предпочтительный язык VB это:

Dim saveAction as New Action(Of Object)(AddressOf Me.Save)
_saveCommand = New RelayCommand(saveAction, Function(param) Me.CanSave)

Я ожидал бы только видеть параметрический усилитель, если он используется в CanSave, или Сохранить. Я несколько плохо знаком с лямбда-выражениями. Это нечетно для меня для наблюдения переменной, которая ни не объявляется, ни используется где угодно насколько я могу сказать. Любое объяснение ценилось бы.

Для помещения этого в контекст, конструктор для RelayCommand (C#):

public RelayCommand(Action execute, Predicate canExecute)

и в VB:

Public Sub New(ByVal execute As Action(Of Object), _
               ByVal canExecute As Predicate(Of Object))

5
задан DeveloperDan 23 July 2010 в 13:10
поделиться