是否有将类中的私有(private)方法设为静态的最佳实践?我有一个有几种方法的类(class)。其中一些可以很容易地变成静态的,因为它们只是处理数据。
我应该让它们保持静态还是保持原样?这更多是风格问题吗?是否有性能方面的考虑?
最佳答案
如果方法不访问任何类型的状态,那么它们应该是静态的。
静态方法调用提供了优于实例方法的性能增益,并且静态方法的存在告诉 future 代码的读者调用此方法不会对该类型的当前实例的状态产生副作用。
静态方法的性能提升来自于这样一个事实,即编译器不必发出 callvirt
指令来调用静态方法。 callvirt
指令对于实例调用很方便,因为它会在调用方法之前执行 null
检查。但是,当您调用静态方法时,无需检查 null
,因此编译器可以自由发出更快的 call
指令,该指令不检查 空
。
关于c# - 我应该让我的私有(private)类方法静态化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375227/