C#箴言:使用构造函数初始化语句
编写程序时,经常会出现为一种类型提供不同场景的构造函数。大部分构造函数可能都差不多,C#也不允许缺省参数,所以构造函数的编写无疑是一个重复性的工作。但是用复制粘贴的方式来完成构造函数的编译,有时很难做到统一,尤其是成员发生变化的时候。因此,常见的替换方法是为构造函数提供一个统一的成员函数来完成初始化。
例如:
public class my class
{
private int _ Age;
私有string _ Name
public my class(string Name)
{
init member(Name,20);
}
public my class(string Name,int Age)
{
init member(Name,Age);
}
////
///初始化类成员
///
//
///
private void init member(string Name,int Age)
{
_ Age = Age;
_ Name = Name;
}
}
但是C#提供了一个更简洁的方法,就是在构造函数初始化语句中调用另一个构造函数,所以上面的形式可以改写如下。
public class my class
{
private int _ Age;
私有string _ Name
public my class(string Name):this(Name,20 )
{}
public MyClass( string Name,int Age)
{
_ Age = Age;
_ Name = Name;
}
}
两者在执行效率上没有太大差别,但后者在代码质量上要好得多,而且会让代码看起来更清晰。
位律师回复
0条评论