2012-05-01 38 views
5

どこかから呼び出されたときに、他のコードがパラメータを処理して値を返すように関数を何らかの形でマークすることができますか?機能を正常に実行させることができます。呼び出された関数が実行される前にコードを実行

私は簡単にキャッシュするために使用します。例えば

私はADD10と呼ばれる機能を持っていたし、それは次のようになります場合は、:関数が同じ値(ADD10(7))で繰り返し呼び出さ行けば

int Add10 (int n) 
{ 
    return n + 10; 
} 

それは常に同じを与えるだろう結果(17)ので、毎回再計算する意味がありません。当然のことながら、私はこのような単純な関数ではしませんが、私が意味することを理解できると確信しています。

C#は私がしたいことをする方法を提供しますか? 関数をキャッシュとしてマークする方法が必要なので、誰かがAdd10(16)を実行したときに辞書のチェックのために最初に実行されたコードが既にAdd10の値16を知っていて、私たちがしなければ帰ります。

+0

を参照してください。http://stackoverflow.com/questions/6180242/generating-a-unique-cache-key-based-on-method-arguments –

+0

ここにはたくさんのスレッドがあります。 http://stackoverflow.com/questions/4929540/is-there-anyway-to-cache-function-method-in-c-sharp – abaelter

答えて

0

代わりに機能の、そして私はFunc<>デリゲートを公開します:ここでは一つの方法です

int res = add10(5); // invoking the delegate rather than calling function 
0

MbCacheあなたが探しているものかもしれません。

関連する問題