c# - 我应该让我的私有(private)类方法静态化吗?

标签 c# .net asp.net coding-style

是否有将类中的私有(private)方法设为静态的最佳实践?我有一个有几种方法的类(class)。其中一些可以很容易地变成静态的,因为它们只是处理数据。

我应该让它们保持静态还是保持原样?这更多是风格问题吗?是否有性能方面的考虑?

编辑: Method can be made static, but should it?

最佳答案

如果方法不访问任何类型的状态,那么它们应该是静态的。

静态方法调用提供了优于实例方法的性能增益,并且静态方法的存在告诉 future 代码的读者调用此方法不会对该类型的当前实例的状态产生副作用。

静态方法的性能提升来自于这样一个事实,即编译器不必发出 callvirt 指令来调用静态方法。 callvirt 指令对于实例调用很方便,因为它会在调用方法之前执行 null 检查。但是,当您调用静态方法时,无需检查 null,因此编译器可以自由发出更快的 call 指令,该指令不检查

关于c# - 我应该让我的私有(private)类方法静态化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375227/

相关文章:

c# - .NET HTTP 解析器

.net - 如何仅序列化传递给构造函数的属性?

c# - 如何处理大对象?

c# - 使用 INSERT...OUTPUT.inserted 时,SqlDataReader.RecordsAffected 错误地返回 -1

c# - 在 LoginName 控件中显示全名而不是用户名

c# - mysql .net 连接器抛出 "Illegal characters in path"

c# - 如何更改时间选择器的突出显示背景?

c# - 'using' 应该在命名空间内部还是外部?

javascript - ASP .NET 验证器在 FireFox 中损坏

asp.net - HttpContext 为空?