Skip to main content
 首页 » 编程设计

c#之ReSharper 提示我应该在 WebForms 中执行静态方法之为什么我错过了什么吗

2024年01月13日32sky-heaven

ReSharper 有时会提示我可以将我的 WebForms 中的一些随机实用程序静态化。我为什么要这样做?据我所知,这样做没有任何好处……或者有吗?就 WebForms 中的静态成员而言,我是否遗漏了什么?

请您参考如下方法:

真正的原因不是性能原因——如果它有任何影响的话,将以十亿分之一秒来衡量。

真正的原因是,一个不使用其实例的实例方法在逻辑上是一个设计缺陷。假设我给你写了一个方法:

class C  
{ 
  public int DoubleIt(int x, string y, Type z) 
  { 
    return x * 2; 
  } 
} 

这是一个设计良好的方法吗?不。它会获取各种信息,然后忽略这些信息,并且不会用于计算结果或执行副作用。为什么要强制调用方传入不必要的字符串和类型?

现在,请注意此方法还接受一个 C,以传递到调用中的“this”的形式。这也被忽略了。此方法应该是静态的,并接受一个参数。

一个设计良好的方法会准确地接收计算结果和执行副作用所需的信息,不多也不少。 Resharper 告诉您,您的代码存在设计缺陷:您有一个方法正在接收它忽略的信息。要么修复该方法,使其开始使用该信息,要么通过将方法设为静态来停止传递无用数据。

同样,性能问题完全是转移注意力;你永远不会注意到这么小的差异,除非你正在做的事情需要几个处理器周期的数量级。警告的原因是提醒您注意逻辑设计缺陷。使程序逻辑正确远比在这里或那里削减一纳秒重要得多。