有什么区别使得全类静态并使类的功能成为静态

Ash*_*i K 2 c#

大家好:有什么区别使全班静态并使类的功能成为静态?我的意思是有任何性能问题吗?

Jon*_*eet 6

静态类的特性仅在C#2中引入.CLR实际上并没有这样的概念.C#中的静态类:

  • 没有构造,甚至没有默认参数的一个
  • 密封:它不能被分类
  • 是抽象的:你不能创建它的实例(也是由于没有构造函数)
  • 只能包含静态成员
  • 不能用作参数或变量类型或泛型类型参数等.
  • 无法指定除以外的任何基本类型 object

使用"普通"类的静态成员和使用静态类中的静态成员之间没有性能差异.它主要是一种表达意图,即永远不应该有这个类的任何实例,而不必提供私有且永远不会被调用的构造函数,并强制编译器检查你是不是试图将它用作普通类.

请注意,扩展方法(在C#3中引入)只能在顶级非泛型静态类中声明.