在代码审查期间,我快速向团队提出了一种方法,我已经制定了静态方法,并且有人同意没有理由不静态,而且有人不同意说他不会让它静止,因为它不是是必要的,只是为了安全起见,以便将来进行修改和测试。
所以我做了很多研究,显然这是一个专门的案例,但我想知道在这种情况下你会做什么以及为什么?
(它基本上是一种帮助方法,我从一些不同的方法调用,一个非常低的流量页面。更多我的知识和静态学习。)
private IEnumerable<Category> GetCategoryByID(int id, Context context)
{
var categoryQuery = from selectAllProc in context.SelectAll_sp()
where selectAllProc.CategoryID == id
select selectAllProc;
return categoryQuery;
}
答案 0 :(得分:5)
使私有方法静态是一种微优化的形式;方法调用稍微更快。但差异太小而无意义。
一般来说,你应该在以下方法中标记一个静态方法:
Class.Method()
通常,像你的例子这样的方法会进入他们自己的static
助手类,如果他们在不止一个地方使用的话。
答案 1 :(得分:1)
如果我是你,我会问自己以下问题。
Is it something which is related to type or instance of type?
如果答案是肯定的,我会稍微倾向于将其设为静态,使其不是静态的。
如果您可以提供更多信息,社区可以提出一些不错的选择。
答案 2 :(得分:0)
我想到的第一句话是,通过将此方法声明为静态并可能在代码中的多个位置使用它,您将引入一种 Service-locator 类型的依赖项。
据我所知,它的主要问题是引入了隐式依赖,即无法通过查看方法签名来推断它们。
因此,评估修改静态方法对系统其余部分的影响可能要困难得多。