.NET :静态类的理解
静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
静态类的主要特点如下:
- 它们仅包含静态成员。
- 它们不能被实例化。
- 它们是密封的。
- 它们不能包含实例构造函数。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
使用静态类的优点在于:
- 写在栈中,安全高速稳定,而且在执行的时候,十分优先。
- 编译器能够执行检查以确保不致偶然地添加实例成员。
- 编译器将保证不会创建此类的实利。
类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。静态方法属于类所有,类实例化前即可使用。
静态类和非静态类的区别:
非静态类是储存有状态的一类操作过程,例如语言包的非静态类,声明了之后,可能获取语言的种类,语言元素和一些附加的东西。
静态类可以视为类库里都是单一的过程,不存在“状态”的概念,就可以使用静态类。
非静态类可以包含静态方法,但静态类不能包含非静态方法。