我們在開發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,如需轉載請自行聯系原作者