在 C#(以及其他许多面向对象编程语言)中,static 是一个关键字,用于修饰类的成员(方法、属性、字段等)。当一个成员被声明为 static 时,它表示这个成员属于类本身,而不是类的实例(对象)。因此,您无需创建类的实例就可以访问静态成员。
以下是 static 关键字的一些特点:
- 静态成员只能访问静态成员:静态方法和属性只能访问类中的其他静态方法和属性,而不能直接访问非静态成员。这是因为非静态成员属于类的实例,而静态成员不依赖于特定实例。
- 静态成员在内存中只有一个实例:与每个对象实例都有自己的非静态成员不同,静态成员在内存中只有一个实例,它们被所有类的实例共享。
- 静态成员在类级别上进行初始化:静态成员在程序运行时在类级别上进行初始化,通常在应用程序启动时完成。非静态成员在每个对象实例化时进行初始化。
下面是一个简单的C#示例,说明了如何使用 static 关键字:
class MyClass
{
public static int staticCounter = 0;
public int instanceCounter = 0;
public static void IncrementStaticCounter()
{
staticCounter++;
}
public void IncrementInstanceCounter()
{
instanceCounter++;
}
}
class Program
{
static void Main(string[] args)
{
MyClass obj1 = new MyClass