在C#中声明一个静态类是否有任何优势?

时间:2014-03-08 08:55:08

标签: c# .net

在C#中,您可以将类声明为static,这要求所有成员也是静态的。这样做是否有任何优势(例如表现)?或者只是确保您不会在课堂上不小心声明实例成员?

2 个答案:

答案 0 :(得分:7)

  

或者只是确保您不会在课堂上意外声明实例成员?

就是这样,但不止于此:

  • 它通过根本没有实例构造函数来阻止实例化(而所有其他类都有一个构造函数 - 你声明的一个或隐式的无参数构造函数)
  • 明确表达您的意图
  • 没有什么能从你的课程中获得(它既密封又抽象)
  • 没有什么可以声明您的班级类型的字段
  • 没有什么可以将您的类型用作泛型类型参数

基本上它告诉编译器和其他开发人员“这绝不是要实例化的 - 所以如果看起来你正在尝试使用一个实例,那么你做错了。”

我怀疑是否有性能的好处,但以上所有内容对我来说都足够了:))

哦,你也只能在静态类中声明扩展方法......

答案 1 :(得分:1)