答案在 MSDN 里
静态构造函数用于 初始化任何静态数据 ,或用于执行仅需执行一次的特定操作。 在创建第一个实例或引用任何静态成员之前 ,将自动调用静态构造函数。
C# 复制代码
静态构造函数具有以下特点:
静态构造函数既没有访问修饰符,也没有参数。
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
无法直接调用静态构造函数。
在程序中,用户无法控制何时执行静态构造函数。
静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。
示例
在此示例中,类 Bus 有一个静态构造函数和一个静态成员 Drive()。当调用 Drive() 时,将调用静态构造函数来初始化类。
C# 复制代码
输出
The static constructor invoked.
The Drive method invoked.
静态构造函数用于 初始化任何静态数据 ,或用于执行仅需执行一次的特定操作。 在创建第一个实例或引用任何静态成员之前 ,将自动调用静态构造函数。
C# 复制代码
1
2
3
4
5
6
7
8
|
class
SimpleClass
{
// Static constructor
static
SimpleClass()
{
//...
}
}
|
静态构造函数具有以下特点:
静态构造函数既没有访问修饰符,也没有参数。
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
无法直接调用静态构造函数。
在程序中,用户无法控制何时执行静态构造函数。
静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。
示例
在此示例中,类 Bus 有一个静态构造函数和一个静态成员 Drive()。当调用 Drive() 时,将调用静态构造函数来初始化类。
C# 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public
class
Bus
{
// Static constructor:
static
Bus()
{
System.Console.WriteLine(
"The static constructor invoked."
);
}
public
static
void
Drive()
{
System.Console.WriteLine(
"The Drive method invoked."
);
}
}
class
TestBus
{
static
void
Main()
{
Bus.Drive();
}
}
|
输出
The static constructor invoked.
The Drive method invoked.