关于.NET:在C语言中声明类静态有什么好处吗?

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