C#面:C#中有没有静态构造函数,如果有是做什么用的?

在C#中是存在静态构造函数的,它被称为静态构造器(static constructor)。静态构造函数是一种特殊的构造函数,用于初始化静态成员变量或执行一些静态初始化操作。它与普通的实例构造函数不同,静态构造函数没有参数,并且不能被显式调用。

静态构造函数在以下情况下会被自动调用:

  1. 在创建类的第一个实例之前。
  2. 在访问类的任何静态成员之前。

静态构造函数的特点如下:

  1. 静态构造函数只能在类中定义一次,并且没有访问修饰符(如public、private等)。
  2. 静态构造函数不能被继承或重写。
  3. 静态构造函数在类加载时自动调用,且只会被调用一次。
  4. 静态构造函数通常用于执行一些初始化操作,例如初始化静态成员变量、加载配置文件、注册事件等。它可以确保在使用类的任何静态成员之前,这些初始化操作已经完成。

下面是一个示例代码,演示了如何定义和使用静态构造函数:

cs 复制代码
public class MyClass
{
    private static int count;
    private static string name;

    // 静态构造函数
    static MyClass()
    {
        count = 0;
        name = "C#";
        Console.WriteLine("静态构造函数被调用");
    }

    public static void IncrementCount()
    {
        count++;
    }

    public static void DisplayCount()
    {
        Console.WriteLine("Count: " + count);
    }

    public static void DisplayName()
    {
        Console.WriteLine("Name: " + name);
    }
}

class Program
{
    static void Main(string[] args)
    {
        MyClass.IncrementCount();
        MyClass.DisplayCount();
        MyClass.DisplayName();
    }
}

输出结果:

cs 复制代码
静态构造函数被调用
Count: 1
Name: C#
相关推荐
xyq2024几秒前
R 绘图 - 函数曲线图
开发语言
Lyyaoo.5 分钟前
【JAVA基础面经】进程间的通信方式
java·开发语言·python
小此方7 分钟前
Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图
开发语言·c++·stl·c++11·现代c++
小坏讲微服务11 分钟前
Claude Code 终极实战指南:从终端 Agent 到 AI+Java 开发
java·开发语言·人工智能
爱学习的小囧13 分钟前
ESXi 8.0 vSwitch与dvSwitch(分布式交换机)核心区别
服务器·开发语言·分布式·php·虚拟化
人道领域18 分钟前
2026年Java后端热点科普:Java 26新特性+Java 21落地实战,解锁后端开发新范式
java·开发语言
测绘第一深情19 分钟前
Transformer:从基础原理到自动驾驶 BEV 矢量化地图构建
开发语言·人工智能·经验分享·深度学习·机器学习·自动驾驶·transformer
周末也要写八哥20 分钟前
Java面试时,线程为什么不安全?
java·开发语言·面试
Rust研习社23 分钟前
Rust Clone 特征保姆级解读:显式复制到底怎么用?
开发语言·后端·rust
Albert Edison24 分钟前
【RabbitMQ】七种工作模式
java·开发语言·分布式·rabbitmq