c#static(大白话)

static 关键字用于定义一个静态成员(即静态方法或静态字段)。静态成员是与类相关联的,而不是与类的任何特定实例相关联的

重点:

静态构造函数的执行是通过“静态字段首次访问”的方式触发的。

当代码尝试访问一个类的静态字段时,CLR 系统会检查该类是否已被初始化。

如果尚未初始化,则系统会自动调用该类的静态构造函数进行初始化。

一旦执行完成,则不会再次执行。

//例子
class MyClass {
    static int _myStaticField = 0;
    static MyClass() {
        Console.WriteLine("静态构造函数被调用.");
        _myStaticField = 100; // 初始化静态字段
    }
}

在上面的代码中,我们定义了一个包含静态字段 _myStaticField 的类 MyClass。同时还定义了一个静态构造函数。该静态构造函数在静态字段首次访问时被自动调用,并初始化 _myStaticField 字段为 100。

以上述代码为例,假设我们在主函数中创建两个 MyClass 对象,但没有直接访问静态字段 _myStaticField。此时静态构造函数不会被自动调用,也就是不会有任何输出信息。

class Program {
    static void Main(string[] args) {
        MyClass obj1 = new MyClass(); // 输出 "静态构造函数被调用."
        MyClass obj2 = new MyClass();
    }
}

  • 静态字段(Static Field)

静态字段是与类相关联的,所有实例共享相同的值。这些字段在程序的生命周期内仅分配一次,并在整个应用程序域中保持状态。

class MyClass { static int myStaticField = 10; }

  • 静态方法(Static Method)

与静态字段类似,静态方法是与类相关联的,不需要实例化对象即可调用该方法。它们不依赖于实例变量,并且不能直接访问实例成员。

class MyClass { static void MyStaticMethod() { } }

  • 静态构造函数(Static Constructor)

静态构造函数用于初始化静态字段或执行任何仅需在首次使用该类型时完成的操作。它在静态字段首次访问之前自动执行,且只会执行一次。

class MyClass { static int myStaticField; // 静态构造函数

static MyClass() { myStaticField = 100; } }

  • 静态类(Static Class)

静态类只包含静态成员,不能被实例化,并且默认情况下是密封的。

static class MyStaticClass { static int myStaticField; static void MyStaticMethod() { } }

总结:static 关键字常用于定义静态成员,并且静态成员的优点是可以在不实例化对象的情况下使用,并且静态成员只分配一次并在整个应用程序域中保持状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值