(接上)
19.4不完整類型
儘管在一個單一的檔案中為一個類型維護所有的原始碼是一個良好的編程實踐,但有時,一個類型變得非常大,這將成為一個不切實際的限制。此外,程式員經常使用原始碼產生器產生應用程式的初始結構,並且修改結果代碼。遺憾的是,當原始碼在將來被再次發射時,現存的修改將會被覆蓋。
不完整類型(partial type)可以讓類、結構和介面被拆分成多個部分儲存在不同的源檔案中,這更利於開發和維護。此外,不完整類型允許某些類型的機器產生的部分與使用者編寫的部分之間的分離,因此增加由工具產生的代碼很容易。
當在多個部分中定義一個類型時,你可以使用一個新的類型修飾符partial。下面是一個不完整類的例子,它在兩個部分中被實現。這兩個部分可以在不同的源檔案中,例如,因為第一個部分是通過一個資料庫映射工具由機器產生的,第二個部分是由手工建立的。
public partial class Customer{private int id;private string name;private string address;pivate List<Order> orders;public Customer(){…}}public partial class Customer{public void SubmitOrder(Order order){orders.Add(order);}public bool HasOutstandingOrders(){return orders.Count>0;}}
當前面的兩個部分一起編譯時間,其結果代碼和被作為一個單一的單元而編寫的類是一樣的。
public class Customer{private int id;private string name;private string address;pivate List<Order> orders;public Customer(){…}public void SubmitOrder(Order order){orders.Add(order);}public bool HasOutstandingOrders(){return orders.Count>0;}}
不完整類型的所有部分必須一起編譯,這樣各個部分在編譯時間就可以被融合到一起。特別需要注意的是的是,不完整類型不允許對已經被編譯的類型進行擴充。
以上就是C# 2.0 Sepcification(三)內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!