由于C#不知参数的默认值,but constructor initializers allow one constructor to call another construcor.
所以经常出现一下这种形式的代码:
public
class
MyClass

{
private ArrayList _col;
private string _name;
public MyClass():this(0,"")

{
}

public MyClass(int initialcount):this(initialcount,"")

{
}

public MyClass(int initialcount,string name)

{
//编译器只有在这里添加初始化语句
if(initalcount > 0)
_col = new ArrayList(initialcount);
else
_col = new ArrayList();
_name = name;
}
}
以上形式的代码完全ok!!但是一下形式的代码会降低程序的性能,因为the compiler adds codes to perform several functions on you behalf in constructors.It add statements for all variable initializers.
public
class
MyClass

{
private ArratList _col;
private string _name;
public MyClass()

{
//编译器会自动添加额外的初始语句
commonConstructor(0,"");
}

public MyClass(int initial)

{
//编译器会自动添加额外的初始语句
commonConstrutor(initial,"");
}

public void commonConstrucot(int initial,string name)

{
//编译器会自动添加额外的初始语句
//处理代码
}
}
所以经常出现一下这种形式的代码:





























































