C# 中的静态构造函数(Static Constructor)不能有修饰符。静态构造函数在类的生命周期中只会执行一次,用于初始化静态成员或执行其他必要的静态初始化操作。
静态构造函数的语法如下:
static 类名() {
// 静态构造函数的代码逻辑
}
请注意以下几点关于静态构造函数的特性:
- 静态构造函数没有访问修饰符,无论是 public、private 还是 protected 都不允许。
- 静态构造函数没有参数。
- 静态构造函数不能被直接调用,而是在访问类的静态成员之前自动执行。
- 如果没有显式定义静态构造函数,系统会默认提供一个无参的隐式静态构造函数。
下面是一个示例,展示了如何定义和使用静态构造函数:
using System;
class MyClass
{
private static int counter;
private static string message;
// 静态构造函数
static MyClass()
{
counter = 0;
message = "Hello, World!";
Console.WriteLine("静态构造函数被调用!");
}
public static void Method()
{
counter++;
Console.WriteLine("{0} - {1}", counter, message);
}
}
class Program
{
static void Main()
{
MyClass.Method();
MyClass.Method();
}
}
运行以上代码,将会输出以下结果:
静态构造函数被调用!
1 - Hello, World!
2 - Hello, World!
注意,在上述示例中,静态构造函数在 Main 方法之前自动执行,并且仅执行一次。静态构造函数进行了一些初始化操作,然后我们通过调用 MyClass.Method() 来访问类的静态成员。