在C#代码中,加上Static一般就表示的是该变量或方法是静态的。其实除了变量和方法,Static还可以修饰类,一下我们了解一下,被Static修饰的各个成员的特点。
静态成员变量
- 使用static关键字修饰的成员变量
- 静态成员变量是属于类的,类被加载时初始化,且只有一份。(实例成员变量属于对象,在每个对象被创建时初始化,每个对象一份)
- 存在优先于对象,被所有对象共享,常驻内存。
先看下使用实例访问静态成员变量:
使用类名访问成员变量:
静态构造函数
- 初始化类的静态成员变量
- 仅在类被加载时执行一次
- 不允许使用访问修饰符
使用访问修饰符
初始化静态成员变量
静态方法
- 通过调用实例方法时,会隐式的传递对象引用以便在方法内部可以正确访问该对象成员变量
- 通过类名调用静态方法时,因为没有具体对象,所以在static方法中不能访问实例成员
静态类
- 使用static关键字修饰的类
- 不能实例化,只能包含静态成员
- 静态能不能被继承,但是静态方法,属性可以被继承
实例成员通过引用(对象)调用,静态成员通过类名调用。
当出现类名时,类被加载,静态成员就已经存在了。
实例代码块,可以访问实例成员,也可以访问静态成员。