C#方法可以是静态的吗?
我们今天正在讨论这个问题,我有点蠢蠢欲动.想象一下,你有一个很长的方法,你可以重构几行.新方法可能从父方法中获取一些局部变量并返回一个值.这意味着它可能是静态的.
问题是:它应该是静态的吗?它不是设计或选择的静态,仅仅是因为它不引用任何实例值.
我一直在阅读有关StackExchange技术的文章(例如,关于highavailability.com上的SO性能的文章),并且已经注意到他们提到了大量使用静态方法以获得更好的性能.
为什么静态方法表现更好?我认为减少垃圾收集成本与它有关(因为静态方法不需要实例); 但是,还有更多的东西吗?
我真的很喜欢使用静态方法(特别是对于helpers类).但是由于静态方法不是顽固的,最终它们是一种不好的做法,不是吗?所以我必须在静态方法使用方便性和可测试性之间做出选择.有任何妥协吗?