Files
My-Notes/笔记/CSharp/核心/静态类和静态构造函数.md
T
2026-06-21 09:51:55 +08:00

1.5 KiB

静态类

概念:

  • static 修饰的类叫静态类
  • ==只能包含静态成员==
  • ==不能被实例化==

通常用法:

  • 写工具类
  • 存放通用辅助方法

语法:

public static class MathTool
{
	public static int Add(int a, int b)
	{
		return a + b;
	}
}

注意:

  1. 静态类不能 new
  2. 静态类不能包含实例成员
  3. 静态类本质上也不能被继承,常可以理解为“天然密封”

静态构造函数

概念:

  • 静态构造函数用于初始化静态数据
  • 会在==第一次使用该类型前==自动执行

通常用法:

  • 初始化复杂的静态字段
  • 做一次性的类型级初始化

语法:

class Test
{
	static Test()
	{
		Console.WriteLine("静态构造函数");
	}
}

案例:

class Test
{
	public static int Count;

	static Test()
	{
		Count = 100;
		Console.WriteLine("执行静态构造函数");
	}

	public Test()
	{
		Console.WriteLine("执行普通构造函数");
	}
}

Console.WriteLine(Test.Count);
var t = new Test();

执行理解:

  • 第一次访问 Test.Count 时,会先执行静态构造函数
  • 之后再创建对象时,不会重复执行静态构造函数

注意:

  1. ==类和结构体都可以有静态构造函数==
  2. ==静态构造函数不能写访问修饰符==
  3. ==静态构造函数不能有参数==
  4. 一个类型最多只有一个静态构造函数
  5. 静态构造函数只会自动执行一次
  6. 如果只是简单赋值,优先考虑直接写静态字段初始化器,通常更直观