靜态類是一些不能執行個體化的類,它的作用是将一些相關的成員組合到一起,像我們常見的Math, Console等。靜态類由static關鍵字辨別,靜态類成員也隻能是static類型。Static關鍵字隻能用于修飾類,不能修飾值類型。
C#編譯器對靜态類的限制:
1. 基類隻能為System.Object。
因為繼承是針對對象而言的,靜态類不能建立執行個體,是以從其他類派生沒有實際意義。
2. 靜态類不能實作接口。
3. 靜态類的成員隻能為static類型,可以定義靜态的方法,屬性,事件等。
<a></a>
public static class StaticClass
{
private static string _name;
public static string Name
{
get { return _name; }
set { _name = value; }
}
}
在ILDASM.exe中檢視,我們會看到該靜态類被編譯器同時标記為abstract和sealed。而且,可以看到靜态類不會産生預設的.ctor執行個體構造器。
4. 靜态類不能用作局部變量、字段、方法的參數等。因為它們都需要引用一個執行個體。
對于partial關鍵字我們并不陌生,比如在web form的code-behind模式就經常看到這個關鍵字。它可以應用于類、結構或者接口,告訴編譯器分散到多個中的源代碼其實是同一個類、結構或接口。
分部類型Partial其實是由編譯器提供的,CLR對此并不知情。是以編譯器編譯後要将相應代碼合并後生成一個類型。是以,幾個分部類的源代碼檔案都要使用同一種程式設計語言。
分部方式的用處?
1. 源代碼管理
在使用TFS等進行源代碼控制時,如果幾個程式員同時修改一個檔案,還要進行merge操作。如果使用Partial關鍵字,可以将類的代碼分散到多個檔案中去,使多人友善的同時編輯。
2. 代碼拆分
在使用vs設計窗體時,設計器生成的檔案和具體的功能代碼是分離的,提高了開發效率,防止誤操作。
3. 将類或結構分解成獨立的邏輯單元
如果一個類提供許多複雜的功能,我們可以在源代碼中使用分部類,将不同邏輯單元使用分部類拆分開來。這樣當我們想從類中去除一個功能子產品時也會變得比較容易操作。
對于分部類,其實實際開發中還沒有特意用過,以後遇到上面說的這種情況的時候,可以考慮一下。
本文轉自 陳敬(Cathy) 部落格園部落格,原文連結:http://www.cnblogs.com/janes/archive/2011/08/01/2124372.html,如需轉載請自行聯系原作者