Is there any advantage to declaring a class static in C#?
本问题已经有最佳答案,请猛点这里访问。
在C++中,可以声明一个类为static,这要求所有成员也都是静态的。这样做是否可以获得任何优势(例如性能)?或者只是确保您不会意外地在类中声明实例成员?
Or is it only a matter of making sure you don't accidentally declare instance members in your class?
就是这样,但不止如此:
- 它通过根本没有实例构造函数来防止实例化(而所有其他类都有一个构造函数——要么是声明的,要么是隐式的无参数的)。
- 它清楚地表达了你的意图
- 没有什么可以从类中派生出来(它既是密封的又是抽象的)
- 没有什么可以声明类类型的字段
- 不能将类型用作泛型类型参数
基本上,它告诉编译器和其他开发人员"这绝不是要被实例化的——所以如果它看起来像是你试图使用一个实例,那你就错了。"
我怀疑是否有任何性能优势,但所有这些对我来说都是足够的:)
哦,而且您也只能在静态类中声明扩展方法…
我想你马上就要回答了,分享可能会回答你问题的链接。https://softwarengineering.stackexchange.com/questions/103914/why-and-when-should-i-make-a-class-static-what-is-the-purpose-of-static-key