使用 partial 關鍵字拆分 C# 類別檔案

partial 關鍵字能夠將 class、struct、interface 拆分為多個檔案,在編譯時會自動將所有區段組合

在自動產生的類別檔、有不同開發人員協作或是有一個巨型類別需要劃分多個檔案時都非常好用,常見的命名慣例是以功能作區分,例如 network.upload.cs、network.download.cs 等

程式碼範例:
  
    public void Test()
    {
        T1 t1 = new T1();
        t1.Test1();
        t1.Test2();
    }

    public partial class T1
    {
        public void Test1()
        {
            
        }    
    }

    public partial class T1
    {
        public void Test2()
        {
            
        }
    }


以前就知道 partial 關鍵字,但一直沒有機會使用到,這次在寫 ASP.NET Core 時 Entity Framework Core 的 DbContext 非常龐大,有自動產生的資料庫內容對應資料和自訂的規則,每次重新同步資料庫時都要再合併一次,這時候就很適合使用 partial ,能夠將自訂的內容和自動產生的部分拆分為兩個檔案。
補充:在 EFCore 3 以前無法使用 partial 拆分

參考資料:
Microsoft.Learn - partial method (C# Reference)

留言