静态成员属于类而非实例,可通过类名直接访问,无需创建对象,常用于工具方法和共享数据,如静态字段计数、静态类Math等,提升代码效率与结构清晰度。

在C#中,static 关键字用于声明属于类型本身而不是类实例的成员。这意味着你不需要创建类的实例就可以访问这些成员。它可用于类、字段、方法、属性、构造函数和事件。
静态类(Static Class)
使用 static 修饰的类称为静态类。静态类有以下特点:
- 不能被实例化,即不能使用 new 关键字创建对象。
- 只能包含静态成员(如静态方法、静态字段等)。
- 不能继承其他类,也不能被继承(隐式密封)。
- 通常用于工具类或辅助类,比如 Math 类就是典型的静态类。
示例:
static class Utility
{
public static void PrintMessage(string msg)
{
Console.WriteLine(msg);
}
}
调用方式:Utility.PrintMessage("Hello");
静态成员(Static Fields)
静态字段属于类本身,所有实例共享同一个静态字段。无论创建多少个对象,静态字段在内存中只有一份。
- 通过类名访问,而不是实例名。
- 常用于保存全局数据或计数器。
示例:
class Counter
{
public static int Count = 0;
public Counter()
{
Count++;
}
}
使用:
Console.WriteLine(Counter.Count); // 输出 0 Counter c1 = new Counter(); Counter c2 = new Counter(); Console.WriteLine(Counter.Count); // 输出 2
静态方法(Static Methods)
静态方法是使用 static 修饰的方法,可以直接通过类名调用。
- 静态方法只能直接访问静态成员,不能访问实例成员(除非创建实例)。
- 常见于工具方法,例如字符串处理、数学计算等。
示例:
class MathHelper
{
public static int Add(int a, int b)
{
return a + b;
}
}
调用:int result = MathHelper.Add(3, 5);
注意:在静态方法中访问非静态成员会编译错误,因为实例成员依赖于对象存在。
基本上就这些。static 的核心作用是让成员脱离对象实例,直接通过类来使用,适合存放与具体对象无关的功能或数据。理解 static 有助于写出更高效、结构更清晰的代码。不复杂但容易忽略细节。










