2011-08-23 3 views
4

アクションと同様にパラメータとして条件を渡すことはできますか?条件をパラメータとして渡す

例を示します。

public void Test(Action action, Condition condition); 

...

Test(() => Environment.Exit(0),() => variable == variable2); 

答えて

13

はタイプFunc<Boolean>ように、第2引数を渡す試してみてください。

public void Text(Action action, Func<Boolean> condition) { 
    if (condition()) action(); 
} 

EDIT:あなたはあなたの使用例ではやっているだろうことは、変数と変数2捕獲変数を含むClosureを作成していることに注意してください、あなたの質問の後半部分でそれを持っているようにコードが動作するはずです。このように使用する前に、クロージャの意味を理解する必要があります。

+0

完璧に働いた、ありがとう!そしてClosuresについてのリンクについてもっと感謝します:) –

関連する問題