如果有的话,将参数作为参数传递给静态方法而不是让该方法是非静态的并通过实例成员访问相同的值是否会更快。假设该方法以只读方式访问这些成员。
在所有其他条件相同的情况下,调用静态方法比调用实例方法稍快。
在所有其他条件相同的情况下,调用不带参数的方法比调用带参数的方法稍快。
考虑:
private Thing _thing;
void DoTheThing()
{
_thing.DoIt();
}
与此等效代码相比:
private Thing _thing;
// caller's responsibility to pass "_thing"
static void DoTheThing(Thing thing)
{
thing.DoIt();
}
我想不出这种优化会真正增加任何价值的现实情况,但作为一个思想实验(对于那些喜欢讨论这种事情的人),真的有好处吗?如果是的话有多少参数(什么类型等)以另一种方式平衡?
考虑到这一点,是否还有其他因素?例如,静态方法_thing
作为局部变量而不是字段进行访问。