C# 中静态构造函数和非静态构造函数的区别17 Mar 2025 | 4 分钟阅读 在 C# 中,构造函数 是在创建对象时自动调用的类方法。这些构造函数用于使用某些值初始化对象。构造函数与类名相同,并且没有返回类型。 有静态构造函数、非静态构造函数、默认构造函数和参数化构造函数。如果一个构造函数接受参数,则称为参数化构造函数,而默认构造函数不带参数。 如果一个构造函数初始化静态成员,则称为静态构造函数,而非静态构造函数则初始化实例成员。 静态构造函数静态构造函数 用于初始化类的静态成员。它不接受任何参数,并且其声明不包含访问修饰符或 “static” 关键字。静态构造函数只执行一次。通常,它发生在访问类的任何静态成员或调用静态方法之前。静态构造函数不能具有 public 或 private 等访问修饰符。运行时会自动调用它。 语法它具有以下语法: 示例让我们以一个 C# 程序来说明 静态构造函数。 输出 ![]() 说明 C# 程序定义了一个名为 MyClass 的类,其中包含一个静态变量 staticVariable 和一个静态构造函数 (static MyClass()) ,该构造函数将此变量初始化为 100。程序在 MyClass 中包含一个静态方法 PrintStaticVariable() ,该方法打印静态变量的值。在 Program 类的 Main 方法中,对 MyClass 类型调用了两次静态方法 PrintStaticVariable() ,导致静态构造函数仅执行一次。程序输出显示消息 “Static constructor is called” 一次,这证实了静态构造函数只执行一次,然后打印静态变量的值两次,表明静态变量在多次调用静态方法时保持其值。该程序演示了如何使用静态构造函数仅初始化一次静态成员,即使静态方法被多次调用。 非静态构造函数非静态构造函数 也称为实例构造函数。实例构造函数用于初始化类的实例成员。非静态构造函数具有类名,并且可以接受参数。当使用 “new” 关键字创建类的实例时,它会被执行。非静态构造函数可以具有 public 或 private 等访问修饰符,从而控制构造函数的可见性。 语法它具有以下语法: 示例让我们以一个 C# 程序来说明非静态构造函数。 输出 ![]() 说明 C# 程序定义了一个名为 MyClass 的类,其中包含一个实例变量 instanceVariable 和一个非静态构造函数 (public MyClass(int value)) ,该构造函数使用指定的值初始化此变量。在 Program 类的 Main 方法中,使用 new 关键字创建了两个具有不同值的 MyClass 实例。对于每个实例,都会调用非静态构造函数,显示消息“Non-static constructor is called”。随后,程序为每个对象调用 PrintInstanceVariable() 方法,打印其实例变量的相应值。本质上,该程序通过非静态构造函数演示了具有唯一状态的实例的创建,突出了类中实例特定行为的封装。 静态构造函数和非静态构造函数之间的区别![]() C# 中的 静态 和 非构造函数 之间有几个区别。一些主要区别如下:
结论静态构造函数 与类本身相关,并用于一次性初始化静态成员。相比之下,非静态构造函数 与类的实例相关,并用于在创建对象时初始化实例成员。 |
我们请求您订阅我们的新闻通讯以获取最新更新。