C#2.0介紹之Partial types

來源:互聯網
上載者:User

把所有的原始碼作為一個類型儲存在一個單獨的檔案裡是一個好的編程習慣,但有時候一個類型變得過於龐大以至於這樣做成為一個不切實際的約束。此外,編程人員經常使用原始碼產生器來產生一個應用程式的初始結構,然後再修改產生的代碼。不幸的是,當原始碼在將來某個時候再次發布時,已存在的修改就要被覆蓋了。

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不允許加入已經編譯好的類型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.