你会把这个方法设为静态吗?

Ada*_*dam 1 .net c# static linq-to-sql

在代码审查期间,我向团队迅速提出了一种方法,我已经制定了静态方法,一个人同意没有理由不静态,一个人不同意说他不会让它静止,因为没有必要只是为了安全起见,以便将来进行修改和测试.

所以我做了很多研究,显然这是一个专门的案例,但我想知道在这种情况下你会做什么以及为什么?

(它基本上是一种帮助方法,我从一些不同的方法调用,一个非常低的流量页面.更多我的知识和静态学习.)

private IEnumerable<Category> GetCategoryByID(int id, Context context)
{
    var categoryQuery = from selectAllProc in context.SelectAll_sp()
                        where selectAllProc.CategoryID == id
                        select selectAllProc;
    return categoryQuery;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*vey 5

使私有方法静态是一种微优化的形式; 方法调用快一些.但差异太小而无意义.

一般来说,您应该将方法标记为静态:

  1. 不以任何方式与实例成员交互,和
  2. 您希望能够在不实例化类的情况下调用它,如 Class.Method()

通常,像你的例子这样的方法会进入他们自己的static助手类,如果他们在不止一个地方使用的话.