C# partial
?把所有的源代碼作為一個類型保存在一個單獨的文件里是一個好的編程習慣,但有時候一個類型變得過于龐大以至于這樣做成為一個不切實際的約束。此外,編程人員經常使用源代碼生成器來產生一個應用程序的初始結構,然后再修改產生的代碼。不幸的是,當源代碼在將來某個時候再次發布時,已存在的修改就要被覆蓋了。
?
Partial types允許把類,結構和接口打破為多個代碼碎片存在不同的源代碼文件,以便于簡化開發和維護。加之partial types允許機器產生的和用戶編寫的類型部分分離,這樣就可以方便增加工具產生的代碼。
?
Partial,是一個新的類型修飾符,在把一個類型定義在多個部分的時候使用。下面是一個partial class的示例,以兩個部分實現。這兩個部分可能在兩個不同的源代碼文件,比如說第一個部分是由一個數據庫映射工具產生的,而第二個部分是手工編寫的。
public partial class Customer
{
??? private int id;
??? private string name;
??? private string address;
??? private 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;
??? private List<Order> orders;
??? public Customer() {
???????
??? }
??? public void SubmitOrder(Order order) {
??????? orders.Add(order);
??? }
??? public bool HasOutstandingOrders() {
??????? return orders.Count > 0;
??? }
}
一個partial type的所有部分必須在一起編譯,這樣所有的部分才能在編譯的時候整合在一起。特別的是partial types不允許加入已經編譯好的類型。
總結
以上是生活随笔為你收集整理的C# partial的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos8上安装mysql8遇到SE
- 下一篇: C# 网络编程之使用Socket类Sen