天天看點

《C#進階程式設計》筆記系列第三彈-partial關鍵字

 我們在開發WinForm時,經常會看到partial關鍵字,比如,我們建立一個Windows Form時,背景代碼自動添加如下:

1 public partial class Form1 : Form

2 {

3     public Form1()

4     {

5         InitializeComponent();

6     }

7 }

    《C#進階程式設計》書中說明:partial關鍵字允許把類、結構或接口放在多個檔案中。一般情況下,一個類存儲在單個檔案中,但有時,多個開發人員需要通路同一個類,或者某種類型的代碼生成器生成了一個類的某部分,是以把類放在多個檔案中是有益的。

    也就是說,我們定義的一個類可以分開幾個檔案來存儲,而各個檔案都隻是完成這個類的一部分功能。我們在使用這個類時,根本體會不到這個類是由幾部分結合在一起共同組成的。比如我分别在兩個地方定義了Box類的一部分:

public partial class Box

{

    public Box(string newBoxName)

    {

        boxName = newBoxName;//在這個部分類中,并沒有出現boxName局部變量。但是卻是可以使用的。

    }

    public void Open()

    {//打開盒子

        Console.WriteLine(boxName + " is opened");

}

    private string boxName = string.Empty;//boxName是在這個部分類中定義的哦

    public void Close()

    {//關閉盒子

        Console.WriteLine(boxName + " is closed");

};

    上面的代碼等同于下面的Box類:

public class Box

    private string boxName = string.Empty;

        boxName = newBoxName;

    書中還有一段:在把部分類編譯到類型中時,會合并屬性、XML注釋、接口、一般類型的參數屬性和成員。

    是以自己可以去設計一些小Demo去嘗試一下。現在回到最開始的問題,為什麼建立立的Winows Form的類定義成了一個部分類。我們打開Form1.Designer.cs檔案,可以看到,原來Form1的另一部分類是在這個檔案中設計的。這個部分類中定義了我們使用的控件、事件委托以及如Dispose方法等。因為這裡面的代碼都是自動生成的,是以設計成了一個部分類。OK,原來partial如此簡單,就到這啦!

本文轉自CoderZh部落格園部落格,原文連結:http://www.cnblogs.com/coderzh/archive/2007/10/28/940444.html,如需轉載請自行聯系原作者