私はこれを検索しようとしましたが、答えを見つけることができませんでした。
メソッドがあり、その中にコードブロック呼び出しが頻繁にあるため、ローカルにリファクタリングしましたFunc
。
このコード ブロックは他の場所では使用していないため、別のメソッドの代わりにこれを使用することに意味があります。
しかし、パフォーマンスに関しては、別の方法を使用する方が良いのでしょうか? 関数内で宣言されているため、割り当てられたり、他の方法で余分な処理時間やメモリを使用したりしますか?Func
それとも、コンパイラによって舞台裏でキャッシュされるか、実際にメソッドにされることさえありますか?
マイクロ最適化のように聞こえるかもしれませんが、私の場合、このメソッドは頻繁に呼び出されます。それで考えが変わるのかもしれません。
だから基本的に:
public T CalledVeryOften(...)
{
Func<...> block = () => ...;
//code that calls 'block' several times
}
また
public T CalledVeryOften(...)
{
//code that calls 'block()' several times
}
private ... block()
{
...
}