当看到Mr. Panic的同名blog时, 马上想到了可爱的c#. 之所以称其可爱, 是因为c#对于我还只是一个玩具, magic, powerful,and nice-looking, 真正混饭吃的还是靠c++和Java.
c#支持构造函数中调用另一个构造函数. 用this关键字来调用. Code is as follows.
class Person


{
public Person(): this("default")

{
Console.WriteLine("Person()");
}
public Person(string yourname)

{
Console.WriteLine("Person(string yourname)");
name = yourname;
}

public void ShowName()

{
Console.WriteLine("ShowName: " + name);
}

private string name;
//static constructor
static Person()

{
Console.WriteLine("Static person()");
}
}

class Class1


{
[STAThread]
static void Main(string[] args)

{
Console.WriteLine("Main");
Person p = new Person();
p.ShowName();
}
}
Output:
Main
Static person()
Person(string yourname)
Person()
ShowName: default
不过,它没有重载方法那么灵活. 构造函数必须先执行. 而不能先进行一些其他工作,再调用另一个构造函数.
随便提一下, c#的类还可以有一个静态构造函数, 主要用于初始化静态成员.
看来, 虽然常受非议, .NET还是有很多优点的.