0

を使用して後で実行するために、パラメーターを使用していくつかList<Action> listOfMethods またはそれ以上の準備をしたいとします。List<Func> listOfMethods

foreach (var action in listOfMethods)
{
    action.Invoke();                 
}

メソッドを追加する以下の方法は、私が望まない即時実行を引き起こします:

listOfMethods.Add(() => processor.DoStuff(m1Parameters));

すぐに実行せずに、パラメーターを使用してメソッドを追加する方法はありますか?

4

1 に答える 1

2

() => processor.DoStuff(m1Parameters)ラムダの本体のようなラムダ式を作成すると、実行されません。

あなたが行を書くとき:

listOfMethods.Add(() => processor.DoStuff(m1Parameters));

メソッドDoStuffは実行されませんが、このブロックの後に、ラムダ式を起動しているものがある可能性があります。

あなたのブロックのように

foreach (var action in listOfMethods)
{
    action.Invoke();                 
}

おそらく、このブロックでアクションが実行されます。

于 2013-11-08T16:30:18.170 に答える