我试图搜索这个,但找不到答案。
我有一个方法,里面经常有一个代码块调用,所以我将它重构为一个本地的Func
.
现在因为我不在其他任何地方使用该代码块,所以使用它而不是另一种方法是有意义的。
但是,在性能方面,使用另一种方法更好吗?get 分配或以其他方式使用额外的处理时间或内存,因为它Func
是在函数内部声明的,还是被编译器缓存或什至实际上在幕后制作成一个方法?
我知道这听起来像是一个微优化的事情,但就我而言,该方法经常被调用。所以也许这会改变考虑。
所以,基本上:
public T CalledVeryOften(...)
{
Func<...> block = () => ...;
//code that calls 'block' several times
}
或者
public T CalledVeryOften(...)
{
//code that calls 'block()' several times
}
private ... block()
{
...
}