静态类
静态类相当于一个sealed abstract类,主要的一个优点是写在栈中,安全高速稳定,而且在执行的时候,十分优先。
基本简介
类可以声明为 static 的,以指示它仅包含静态成员。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR;特指:C#语言) 自动加载。
使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。
主要功能
它们仅包含静态成员。
它们不能被实例化。
它们是密封的。
它们不能包含实例构造函数。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
优点
使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实例。
静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。
注意事项
静态类不能有实例构造器。
静态类不能有任何实例成员。 静态类不能使用abstract或sealed修饰符。 静态类默认继承自System.Object根类,不能显式指定任何其他基类。
静态类不能指定任何接口实现。
静态类的成员不能有protected或protected internal访问保护修饰符。
静态类基本上与非静态类相同,但存在一个差异:静态类无法实例化。 换句话说,无法使用 new运算符创建类类型的变量。 由于不存在任何实例变量,因此可以使用类名本身访问静态类的员。 例如,如果你具有一个静态类,该类名为 UtilityClass
,并且具有一个名为 MethodA
的公共静态方法,如下面的示例所示:
UtilityClass.MethodA();
静态类可以用作只对输入参数进行操作并且不必获取或设置任何内部实例字段的方法集的方便器。 例如,在 .NET 类库中,静态 System.Math 类包含执行数学运算,而无需存储或检索对 Math