1. 程式人生 > 實用技巧 >現實世界四部分類和部分方法的使用

現實世界四部分類和部分方法的使用

表的內容 介紹部分類的基礎部分方法的基礎使用數字1:ASP。NET自動生成程式碼2:LINQ和實體框架使用3:通過壓縮大型類來更好地維護使用4:多人在同一個類上工作 介紹 最近我正在研究分部類及其在現實世界中的使用。谷歌上的許多帖子都談到了“部分”的概念 類和分部方法,但很少強調在什麼場景中使用它們。 在本文中,我們將首先介紹部分類和方法的基礎知識,然後進行討論 現實世界的四種用途。我還在這裡建立了一個視訊,在其中討論了部分類並展示了它們在現實中的用法。 部分類基礎 分部類允許將單個類劃分為兩個單獨的物理檔案。在編譯時,這些檔案被編譯成單個類。 例如,您可以在下面的圖中看到,我們將customer類劃分為兩個不同的檔案“customer1”。cs”和“customer2.cs”。 在編譯期間,這些檔案在內部被編譯為單個類。因此,當您建立Customer類的物件時,您將能夠 要檢視位於兩個物理檔案中的方法。例如,您可以看到Add方法屬於customer1.cs,而Delete方法屬於 customer2。但是當建立了Customer物件時,我們可以同時看到Add和Delete方法。 部分方法的基本原理 在分部類中還有一個更重要的概念叫做分部方法。分部方法幫助我們在一個物理檔案中定義方法 我們可以在另一個物理檔案中實現該方法,如下圖所示。 在圖中,您可以看到我們在Customer1.cs中定義了驗證方法,這個驗證方法在Customer2.cs中實現。 請注意這兩個方法附帶的部分關鍵字。 使用第一個:ASP。NET自動生成程式碼 分部類的最大用途是在需要生成程式碼的技術中。微軟團隊本身在ASP中使用分部類。NET, LINQ,和EF程式碼生成。 例如,當我們看ASP。NET中包含兩個部分:頁面的自動生成程式碼和編寫自定義邏輯的程式碼。 自定義邏輯寫在" .aspx。而自動生成的邏輯在“.aspx. desigator .cs”檔案中,如下圖所示。 作為一名開發人員,您希望自動生成的程式碼來完成它的工作,即。,當您在ASP中拖放按鈕時生成程式碼。網路設計師。 下面是如何自動生成的程式碼看起來像: 隱藏,收縮,複製Code

public partial class WebForm1 {
        
    /// <summary>
    /// form1 control.
    ///    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    protected global::System.Web.UI.HtmlControls.HtmlForm form1;
    
    ///
<summary> /// Button1 control. /// </summary> /// <remarks> /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// </remarks> protected global::System.Web.UI.WebControls.Button Button1; /// <summary>
/// Label1 control. /// </summary> /// <remarks> /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// </remarks> protected global::System.Web.UI.WebControls.Label Label1; }

同時,您還希望在其他檔案中定製程式碼,這樣自動生成部分就不會受到干擾。為此,ASP。網路提供了 " . aspx。這是一個分部類,你可以放你自己的自定義邏輯。 隱藏,複製Code

public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Your custom logic
    }
}

這隻有在類被分割成兩個物理檔案,但通過partial關鍵字統一時才可能實現。如果你看任何一個ASP。NET程式碼後置類檔案, 它會被標上“partial”這個詞。 通過使用ASP中的partial關鍵字。NET,微軟團隊讓VS和開發人員並肩工作,這樣就不會浪費彼此的程式碼,從而提高了工作效率。 使用2:LINQ和實體框架 由於這些技術的自動生成特性,LINQ和EF也大量使用部分類和方法。當你在這些框架中拖動表格時, 它們建立自動生成的類,如下圖所示。 在圖中,您可以看到自動生成的程式碼如何具有partial類和partial方法。 之後可以擴充套件分部方法來放置自定義邏輯。例如,您可以在下面的程式碼中看到,對於上面自動生成的類tblCustomer, 我們使用了部分方法來覆蓋OnCustomerCodeChanged事件,以確保客戶程式碼不超過8個字元。 隱藏,複製Code

public partial class tblCustomer
{
    partial void OnCustomerCodeChanged()
    {
        if (_CustomerCode.Length > 8)
        {
            throw new Exception("Customer code can not be greater than 8");
        }
    }
}

因此,通過使用分部類和分部方法,LINQ和EF保持自動生成類,通過使用分部方法,我們可以用自己的邏輯定製類。 使用方法3:通過壓縮大型類來更好地維護 分部類的另一個重要用途是更好地維護專案。如果您有如圖所示的具有許多方法的大型類, 維護這些類有點麻煩。 通過使用分部類,您可以將它們分割成如下圖所示的物理檔案,從而使您的專案更好且更容易維護。 使用第4種方法:多人在同一個類上工作 在現實世界中,當我們希望開發人員同時在同一個類中工作時,我看到的最後一次也是最後一次使用分部類。我同意這可以是一個非常 很少使用,因為有更好的選擇,如使用版本控制軟體,如TFS或Subversion,但in情況下,你想要一些快速和本地的,這個選項是不錯的。 你也可以觀看我的500個關於不同技術的視訊,比如。net, c#, Silverlight, Azure, VSTS, WCF, WPF, WWF, SharePoint,設計模式,UML, 和許多更多。 本文轉載於:http://www.diyabc.com/frontweb/news2042.html