目录
[1.静态字段 / 属性](#1.静态字段 / 属性)
一、核心概念
静态成员是属于类本身 而非类实例的成员,所有类的实例共享同一静态成员,常用于是实现类级别的共享数据或工具方法。
二、核心特点
1.不依赖实例:无需创建类的对象及可直接访问。
2.内存唯一:程序运行期间,静态成员在内存中仅存在一份副本。
3.访问方式:通过 类名.静态成员名 访问(而非实例名)。
三、常见类型
1.静态字段 / 属性
存储类级别的共享数据。
示例:
public static int UserCount = 0;
2.静态方法
提供不依赖实例的通用功能(如工具类方法 Math.Max() )。
示例:
public static int Add(int a, int b) => a + b;
3.静态构造函数
用于初始化静态成员,自动执行且仅执行一次(在第一次访问类时触发)。
示例:
static MyClass()
{
// 初始化静态字段
Config = LoadConfig();
}
四、静态成员与实例成员对比
|----------|--------------------|---------------|
| 对比维度 | 静态成员 | 实例成员 |
| 所属对象 | 类本身 | 类的实例 |
| 访问方式 | 类名.成员名 | 实例名.成员名 |
| 访问权限 | 可被静态方法和非静态方法访问 | 不可被静态方法访问 |
| 内存分配时机 | 程序启动时 | 实例创建时 |
| 内存副本数量 | 唯一(所有实例共享) | 每一个实例一份 |
| 生命周期 | 程序运行期间 | 实例被销毁时释放 |
五、使用注意事项
1.静态成员无法访问实例成员:静态成员初始化时,实例可能尚未创建。
2.静态构造函数无参数:不能手动触发或重载。
3.线程安全风险
4.避免滥用静态