ReSharper 喜欢指出每个 ASP.NET 页面的多个可以静态化的函数。如果我将它们设为静态会对我有帮助吗?我应该将它们设为静态并将它们移至实用程序类吗?
在我看来,性能、命名空间污染等都是次要的。问问自己什么是合乎逻辑的。该方法在逻辑上是对类型的实例进行操作,还是与类型本身相关?如果是后者,请将其设为静态方法。仅当它与不受您控制的类型相关时,才将其移至实用程序类中。
有时,有些方法在逻辑上作用于实例,但并不碰巧使用实例的任何状态yet。例如,如果您正在构建一个文件系统并且您已经有了目录的概念,但您还没有实现它,您可以编写一个返回文件系统对象类型的属性,并且它始终只是“文件” - 但它在逻辑上与实例相关,因此应该是一个实例方法。如果您想使方法成为虚拟的,这一点也很重要 - 您的特定实现可能不需要状态,但派生类可能需要。 (例如,询问一个集合是否是只读的 - 您可能还没有实现该集合的只读形式,但它显然是集合本身的属性,而不是类型。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)