C# 2.0 Sepcification(三)

來源:互聯網
上載者:User
(接上)
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;

}

}



不完整類型的所有部分必須一起編譯,這樣各個部分在編譯時間就可以被融合到一起。特別需要注意的是的是,不完整類型不允許對已經被編譯的類型進行擴充。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.