5

PRISM が次のコンストラクターを宣言しているのを確認しましたが、基本コンストラクターが呼び出されたときに 2 番目のパラメーターとして機能するラムダ関数で使用されている "o" が何であるかがわかりません。

public DelegateCommand(Action<T> executeMethod)
    : this(executeMethod, (o)=>true)
{            
}

説明をいただければ幸いです。

4

2 に答える 2

11

あなたが投稿した宣言のコンストラクターは別のコンストラクターを呼び出すため、それを説明するには、まず他のコンストラクターの署名を確認する必要があります。

public DelegateCommand(Action<T> executeMethod, Func<T, bool> canExecuteMethod)

したがって、2 番目のパラメーターはFunc<T, bool>. つまり、型のパラメーターを取り、Tブール値を返す関数です。

使用されているラムダを見ると、次のようになります。

(o) => true

一般に、ラムダには構文(parameter-list) => lambda-bodyがあるため、この場合、ラムダの 1 つのパラメーターは変数o(型は であると推測されますT) であり、関数は定数の結果を返しますtrue

これの目的は、基本的に常に実行可能なコマンドを作成することです。

もちろん、そのラムダはもっと複雑に見える可能性があるため、DelegateCommand を使用する場合は、より複雑で非定数の式を使用する可能性があります。例えば:

 new DelegateCommand(DoSomething, o => o.SomeProperty >= 0 && o.SomeProperty < 10 && o.SomeBoolProperty)
于 2013-09-16T13:12:35.560 に答える
3

このコンストラクターを呼び出します。

DelegateCommand<T>(Action<T>, Func<T, Boolean>)

2 番目のパラメーターとして常に true を返すラムダを渡す

于 2013-09-16T13:12:16.857 に答える