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條評論