Josh Smith 关于 MVVM的MSDN 杂志文章包含一个我不完全理解的 lambda 表达式。这段代码中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 。我对 lambda 表达式有点陌生。据我所知,看到一个既没有声明也没有在任何地方使用的变量对我来说很奇怪。任何解释将不胜感激。
为了把它放在上下文中,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))