操作方法
c#2.0引入了局部類型的概念。局部類型允許我們將一個類、接口或結構分成好幾個部分,分別實現在幾個不同的.cs檔案中。 局部類型適用於以下情況:
(1)類型特別大, 不宜放在一個檔案中實現。
(2)一個類型中的一部分代碼為自動化工具生成的代碼,不宜與我們自己編寫的代碼混合在一起。
(3)需要多人合作編寫一個類。
局部類型是一個純語言層的編譯處理,不影響任何執行機制--事實上c#編譯器在編譯的時候仍會將各個部分的局部類型合併成一個完整的類。
public partial class Program
( )
static void main(string args)
( )
partial class Program
( )
public void test( )
( )
限制
(1)局部類型只適用於類、接口、結構,不支持委託和枚舉。
(2)同一個類型的各個部分必須都有修飾符partial。
(3)使用局部類型時,一個類型的各個部分必須位於相同的命名空間中。
(4)一個類型的各個部分必須同時編譯。
注意點
(1)關鍵字partial是一個上下文關鍵字,只有和class、struct、interface放在一起時才有關鍵字的含義。因此partial的引入不會影響現有代碼中名稱為partial的變數。
(2)局部類型的各個部分一般是分開放在幾個不同的.cs檔案中,但c#編譯器允許我們將他們放在同一檔案中。
套用特性
在局部類型上的特性具有“累加”效應。
[Attribute1,Attribute2("hello")]
partial class Class1{}
[Attribute3,Attribute2("Exit")]
partial class Class1{}
相當於
[Attribute1,Attribute2("hello"),Attribute3,Attribute2("Exit")]
class Class1{}
修飾符
(1)一個類型的各個部分上的訪問修飾符必須維持一致性。
(2)一個類型有一個部分使用了abstract修飾符,那么整個類都將被視為抽象類。
(3)如果一個類型有一個部分使用了sealed修飾符,那么整個類都將被視為密封類。
(4)一個類的各個部分不能使用相互矛盾的修飾符,比如不能再一個部分上使用abstract,又在另一個部分上使用sealed。