C#从构造函数中调用其他构造函数
生活随笔
收集整理的這篇文章主要介紹了
C#从构造函数中调用其他构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有時,在一個類中有幾個構造函數,以容納某些可選參數,這些構造函數包含一些共同的代碼。例如,如下情況:
Class Car {private string _description;private int _nWheels;public Car(string description,unit nWheels){_description = description;_nWheels = nWheels;}public Car(string description){_description = description;_nWheels = 4;}//etc. }?這兩個構造函數初始化相同的字段,顯然,最好把所有的代碼放在一個地方。C#有一個特殊的語法,稱為構造函數初始化器,可以實現此目的:
Class Car {private string _description;private int _nWheelspublic Car(string description , int nWheels){_description = description;_nWheels = nWheels;}public Car(string description) : this(description ,4){}//etc. }這里,this關鍵字,僅調用參數最匹配的那個構造函數。注意,構造函數初始化器在構造函數的函數體之前執行?,F在假定運行下面的代碼:
var myCar = new Car("Proton Person");在本例中,在帶一個參數的構造函數的函數體執行之前,先執行帶兩個參數的構造函數(但是在本例中,因為再帶一個參數的構造函數的函數體中沒有代碼,所以沒有區別)。
C#構造函數初始化器可以包含對同一個類的另一個構造函數的調用(使用前面介紹的語法),也可以包含對直接基類的構造函數的調用(使用相同的語法,但是應使用base 關鍵字代替 this)。初始化器中不能有多個調用。?
?
?
總結
以上是生活随笔為你收集整理的C#从构造函数中调用其他构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 队列复制_复制一个文件夹里的文
- 下一篇: PJ2018T4 对称二叉树 树形结构