Josh Smith による MVVM に関する MSDN マガジンの記事には、完全には理解できないラムダ式が含まれています。このコードのparamの目的は何ですか?
_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またはSave内で使用されている場合、paramのみが表示されると予想していました。私はラムダ式に少し慣れていません。私が知る限り、どこでも宣言も使用もされていない変数を見るのは奇妙です。説明をいただければ幸いです。
これをコンテキストに入れると、RelayCommand (C#) のコンストラクターは次のようになります。
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
そしてVBで:
Public Sub New(ByVal execute As Action(Of Object), _
ByVal canExecute As Predicate(Of Object))