C#物件導向程式設計(六){存取修飾詞&存取層級}

前面幾篇我們已經了解部分的關鍵字,及其使用方法;而關鍵字裡面有一群叫修飾詞的關鍵字,專門用蘭定義存取權限、或者一些較抽象的類型描述用。本節我們可以先來了解存取的修飾詞。
c#

  • 存取修飾詞用於指定成員或型別之宣告存取範圍的關鍵字。一般一個類型、成員只允許使用一個存取修飾詞除了D合併使用B+C以外,且 namespace 不可使用;若在宣告中沒有指定任何存取修飾詞,則會使用預設存取範圍。A. public:無任何限制。
    B. protected:包含類別(自身)或衍生於包含類別的型別(被繼承之子類別)。
    C. internal:只限於目前的組件(命名空間)。
    D. protected  internal:存取限於目前的組件或衍生於包含類別的型別。
    E. private:私有型別只限包含型別,也就是在自身類別內存取(限定在類別大括號內存取)。
  • 巢狀&未巢狀
    A.未巢狀:
    於其他類型中的最上層類型,只能有 internalpublic 存取範圍。 這些類型的預設存取範圍是 internal
    B.巢狀:
    成員的存取範圍取決存取範圍定義域,如果成員巢狀在另一個類型內,則其存取範圍定義域是由成員的存取範圍層級和包含類型的存取範圍定義域決定。

    成員 預設成員存取範圍 允許的成員已宣告存取範圍
    enum public
    class private public

    protected

    internal

    private

    protected  internal

    interface public
    struct private public

    internal

    private

  • 圖解:%e5%ad%98%e5%8f%96%e4%bf%ae%e9%a3%be

Leave a Reply