在图书馆(OpenTK)中,我看到了某个类的奇怪构造函数。该类有一个静态类成员,该成员包含该类的一个实例,所有字段都具有默认值。
它看起来像这样(这不是实际的实现,只是为了说清楚):
class A {
public int number;
public static A Default = new A(0);
public A(): this(Default) { }
public A(int number) {
this.number = number;
}
}
我想知道的是第一个 ctor 是如何工作的。很可能生成的 A 实例将是 Default 的副本,但是为此(默认)调用 A 的什么 ctor?它让我感到困惑,因为 c# 没有复制构造函数,并且没有声明的 A 的显式构造函数接受它的实例。
我搜索了网络,但我不知道这种现象是如何被调用的,所以没有奏效。此外,至少据我所知,MS 在 c# 上的文档没有提到这是可能的。
有谁知道这件事的细节?
平台: VS 2010 SP1,.NET 4.5