:this(…)
• 一个构造函数可以调用另一构造函数
struct ColouredPoint
{
public ColouredPoint(int x, int y)
: this(x, y, Colour.Red)
{
}
public ColouredPoint(int x, int y, Colour c)
{
...
}
...
private int x, y;
private Colour c;
}
结构类总有一编译器声明的公有的缺省构造函数。不管你有没有声明构造函数,编译器声明的公有的缺省构造函数总是存在的。所以你不能定义缺省构造函数,这样会出现两个缺省构造函数,这是不允许的。但要注意的是,这只适合于结构,对于类是不适用的。用户自定义的结构类的构造函数的默认访问权限是private,和结构类的字段一样。
C#不允许你声明一个和构造函数名字一样的函数。