gpt4 book ai didi

.net - CodeRush 建议如果方法有参数则将其设为静态,同意还是不同意?

转载 作者:行者123 更新时间:2023-12-03 17:04:04 27 4
gpt4 key购买 nike

我使用 Developer Express 的 CodeRush 产品,该产品具有称为代码问题的功能,可以提出优化代码的建议。我注意到,如果您有一个带有参数的方法,它总是会建议将此方法设为静态。本着尝试编写最好的代码并进行优化的精神,我认为这就是 DevExpress 试图帮助我们做的事情,关于将方法静态化是否实际上是明智的,我听到了不同的意见。

您对什么时候方法应该是静态的有什么看法?这样做有什么好处吗?影响?我没有发现它有任何问题,因为它需要参数来运行该方法,因此它不会成为跨多个用户/用途的问题。

好还是坏?

谢谢。

最佳答案

一个方法有没有参数与它无关。唯一要考虑的是该方法是否试图访问该类的任何非静态(即基于实例的)成员,或者该类中的其他静态成员是否调用它....

例如

 private static int Add(int a, int b) 
{ return a + b; }

可以是静态的——它不访问其容器类的任何实例成员,即使它有参数

但在下面的类中,PrintHello() 不能声明为静态的,因为它访问基于实例的字段 useCount,即使它没有参数。

public class myClass
{
private int useCount = 0;

private void PrintHello()
{
useCount = useCount + 1;
Console.Write("Hello");
}
}

关于.net - CodeRush 建议如果方法有参数则将其设为静态,同意还是不同意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096091/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com