C#中的静态类、静态成员、静态构造函数

  • 静态

  1. 关键字static修饰的类称之为静态类。
  2. 静态类不能实例化。
  3. static关键字可以防止程序员写代码实例化静态类,也可以防止在静态类的内部声明任何实例成员。
  4. C#编译器会自动把静态类标记为sealed,这个关键字将类指定为不可扩展(不能从它派生出其他类)。
  5. 静态类特性:仅包含静态成员;无法实例化;属于密封类;不能包含实例构造函数(但可以包含静态构造函数)。
  • 静态成员

  1. 非静态类也就是实例类可以包含静态的成员(字段、属性、方法、事件)。
  2. 在静态类的N个实例对象中,静态成员只有一个副本。
  3. 静态的属性和方法不能访问实例成员(因为静态成员在类实例化之前就存在了,而实例成员在实例化之后才存在)。
  4. 静态方法属于类而不属于实例,所以只能被重载不能被重写。(是不是因为他是密封类所以不能重写?)
  5. C#不支持局部静态变量。

注:字段不能声明为static const(常量不可声明为static)。const字段的行为本质上是静态的,属于类,不属于实例。只通过ClassName.FieldName访问。

  • 静态构造函数

  1. 静态构造函数可以用于静态类,也可以用于实例类。
  2. 静态构造函数不可继承。
  3. 静态构造函数无访问修饰符、无参数,只有一个static标识。
  4. 静态构造函数不可直接被调用,由编译器调用,只会执行一次。

参考资料:

https://blog.csdn.net/lizhenxiqnmlgb/article/details/80430682

https://www.cnblogs.com/newcapecjmc/p/7064844.html

你可能感兴趣的:(C#中的静态类、静态成员、静态构造函数)