Nea*_*eal 2 .net clr optimization devexpress coderush
我使用Developer Express的CodeRush产品,该产品具有一个名为Code Issues的功能,可以提供优化代码的建议.我注意到如果你有一个具有参数的方法,它总是建议使这个方法静态.本着试图编写最佳代码和优化的精神,我假设是DevExpress试图帮助我们做的事情,我听到了关于是否使该方法静态实际上是明智的混合意见.
您对何时方法应该是静态的有什么看法?这样做有什么好处吗?影响?我没有看到它有任何问题,因为它需要参数来运行该方法,因此它不会成为跨多个用户/使用的问题.
是好是坏?
谢谢.
方法是否具有参数与其无关.唯一的考虑因素是该方法是否尝试访问该类的任何非静态(即基于实例的)成员,或者该类中的某个其他静态成员是否调用它....
例如
private static int Add(int a, int b)
{ return a + b; }
Run Code Online (Sandbox Code Playgroud)
可以是静态的 - 即使它有参数,它也不会访问其容器类的任何实例成员
但是在下面的类中,PrintHello()由于它访问基于实例的字段,因此无法声明为静态useCount,即使它没有参数.
public class myClass
{
private int useCount = 0;
private void PrintHello()
{
useCount = useCount + 1;
Console.Write("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)