(接上)
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(三)內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!