跟小靜讀CLR via C#(07)-靜態類,部分類別

來源:互聯網
上載者:User
一、      靜態類-Static

靜態類是一些不能執行個體化的類,它的作用是將一些相關的成員組合到一起,像我們常見的Math, Console等。靜態類由static關鍵字標識,靜態類成員也只能是static類型。Static關鍵字只能用於修飾類,不能修飾實值型別。

C#編譯器對靜態類的限制:

1.         基類只能為System.Object。

 

因為繼承是針對對象而言的,靜態類不能建立執行個體,所以從其他類派生沒有實際意義。

2.         靜態類不能實現介面。

3.         靜態類的成員只能為static類型,可以定義靜態方法,屬性,事件等。

    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

對於partial關鍵字我們並不陌生,比如在web form的code-behind模式就經常看到這個關鍵字。它可以應用於類、結構或者介面,告訴編譯器分散到多個中的原始碼其實是同一個類、結構或介面。

部分型別Partial其實是由編譯器提供的,CLR對此並不知情。所以編譯器編譯後要將相應代碼合并後產生一個類型。因此,幾個部分類別的原始碼檔案都要使用同一種程式設計語言。

分部方式的用處?

1.         原始程式碼控制

在使用TFS等進行原始碼控制時,如果幾個程式員同時修改一個檔案,還要進行merge操作。如果使用Partial關鍵字,可以將類的代碼分散到多個檔案中去,使多人方便的同時編輯。

2.         代碼拆分

在使用vs設計表單時,設計器產生的檔案和具體的功能代碼是分離的,提高了開發效率,防止誤操作。

3.         將類或結構分解成獨立的邏輯單元

如果一個類提供許多複雜的功能,我們可以在原始碼中使用部分類別,將不同邏輯單元使用部分類別拆分開來。這樣當我們想從類中去除一個功能模組時也會變得比較容易操作。

 

對於部分類別,其實實際開發中還沒有特意用過,以後遇到上面說的這種情況的時候,可以考慮一下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.