C#学习:static 在C# 语言中的含义

在 C#(以及其他许多面向对象编程语言)中,static 是一个关键字,用于修饰类的成员(方法、属性、字段等)。当一个成员被声明为 static 时,它表示这个成员属于类本身,而不是类的实例(对象)。因此,您无需创建类的实例就可以访问静态成员。

以下是 static 关键字的一些特点:

  1. 静态成员只能访问静态成员:静态方法和属性只能访问类中的其他静态方法和属性,而不能直接访问非静态成员。这是因为非静态成员属于类的实例,而静态成员不依赖于特定实例。
  2. 静态成员在内存中只有一个实例:与每个对象实例都有自己的非静态成员不同,静态成员在内存中只有一个实例,它们被所有类的实例共享。
  3. 静态成员在类级别上进行初始化:静态成员在程序运行时在类级别上进行初始化,通常在应用程序启动时完成。非静态成员在每个对象实例化时进行初始化。

下面是一个简单的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();
        MyClass obj2 = new MyClass();

        MyClass.IncrementStaticCounter(); // 通过类名直接调用静态方法
        obj1.IncrementInstanceCounter();  // 通过对象实例调用非静态方法

        Console.WriteLine("Static counter: " + MyClass.staticCounter); // 输出:1
        Console.WriteLine("Instance counter (obj1): " + obj1.instanceCounter); // 输出:1
        Console.WriteLine("Instance counter (obj2): " + obj2.instanceCounter); // 输出:0
    }
}

在这个例子中,我们创建了一个名为 MyClass 的类,其中包含一个静态成员 staticCounter 和一个非静态成员 instanceCounter。我们还定义了两个方法,一个用于递增静态计数器,另一个用于递增实例计数器。请注意,静态方法和属性可以通过类名直接访问,而非静态方法和属性需要通过类的实例进行访问。

在英语中,“static” 这个词通常具有以下含义:

  1. 静止的,不变的:表示某物或状态保持不变,没有发生变化,不受外部因素影响。
  2. 静电的:与静电(不流动的电荷)相关的现象或物体。

在编程语境中,“static” 这个词的含义与英语中的含义有关联。当我们在编程中使用 “static” 关键字时,它表示某个成员(如方法、属性、字段等)属于类本身,而不是类的实例。静态成员在内存中只有一个实例,它们在所有对象实例之间共享,从某种程度上说,它们是"静止的"或"不变的"。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值