首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 部分方法 (3):三大實戰應用場景

     編輯:關於C語言

場景一:輕量級事件處理

自動產生的程式碼需通知使用者,但不想承擔事件/虛擬方法的開銷。例如:

partial class Customer
{
    string name;
    public string Name
    {
        get { return name; }
        set
        {
            OnBeforeUpdateName();
            OnUpdateName();
            name = value;
            OnAfterUpdateName();
        }
    }
    partial void OnBeforeUpdateName();
    partial void OnAfterUpdateName();
    partial void OnUpdateName();
}

使用者可在另一個 partial 檔案實作這些方法,若不實作則零成本。

場景二:自訂 LINQ to SQL DataContext 的 IUD 行為

AdventureWorksDataContext 產生的 partial 類別包含:

partial void OnCreated();
partial void InsertAWBuildVersion(AWBuildVersion instance);
partial void UpdateAWBuildVersion(AWBuildVersion instance);
partial void DeleteAWBuildVersion(AWBuildVersion instance);

實作 DeleteXxx 可實現軟刪除(設 IsDeleted 旗標)等自訂邏輯。

場景三:條件式除錯輸出

partial class CA
{
    partial void DebugPrint(string msg);
    void F() { DebugPrint("aaa"); }
}

partial class CA
{
    #if DEBUG
    partial void DebugPrint(string msg) { Debug.WriteLine(msg); }
    #endif
}

優點:除錯碼集中管理;缺點:每個類別需重複定義。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved