MSDN magazine article by Josh Smith on MVVM에는 완전히 이해하지 못하는 람다식이 포함되어 있습니다. 이 코드에서 파라미터의 목적은 무엇입니까?왜이 람다 식에서 param이 맞습니까?
이Dim saveAction as New Action(Of Object)(AddressOf Me.Save)
_saveCommand = New RelayCommand(saveAction, Function(param) Me.CanSave)
가 나는 단지 그것을 CanSave 또는 다른 이름으로 저장에서 사용하는 경우 PARAM를 볼 것으로 예상했을 것이다 : 그것은 VB
_saveCommand = new RelayCommand(param => this.Save(),
param => this.CanSave);
내 원하는 언어로 번역. 나는 람다 식에 다소 새로운 편이다. 내가 말할 수있는 범위 내에서 선언되거나 사용되지 않는 변수를 보는 것은 이상한 일입니다. 모든 설명을 주시면 감사하겠습니다.
문맥에서 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))
나는 지금 생각합니다. 하지만 Object가 무시 될 때 Action (Of Object)으로 선언 된 이유는 무엇입니까? RelayCommand가 ICommand.Execute (객체 매개 변수를 사용)를 구현하기 때문입니까? 혼란스러운 것들 - 나는 VB6를 그리워! – DeveloperDan
@DeveloperDan :'RelayCommand' 자체가 매개 변수를 무시할지 여부를 알지 못합니다. 당신에게 관련 가치를 줄 것입니다 - 단지 이런 대표들이 그것을 무시할 것입니다. 이벤트 핸들러와 같은 것으로 생각하십시오. 모든 이벤트 핸들러가'sender' 또는'args'를 사용하는 것을 괴롭히는 것은 아닙니까? 그들은 단지 그들을 기쁘게 무시하고 모든 것이 잘됩니다. 그것은 정확히 동일합니다. –
감사합니다. 너는 이것을 잘 설명해 주었다. 그리고 네가 꽤 자랐다는 것을 알았다. 나는 다른 게시물, 웹 캐스트 및 포드 캐스트에서 더 많은 것을 배우려고합니다. – DeveloperDan