<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 訪問修飾符(C# 編程指南) 所有類型和類型成員都具有可訪問性級別,用來控制是否可以在您程序集的其他代碼中或其他程序集中使用它們。可使用一下訪問修飾符指定聲明類型或成員時類型或成員的可訪問性。 [public](https://msdn.microsoft.com/zh-CN/library/yzh058ae.aspx) 同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。 [private](https://msdn.microsoft.com/zh-CN/library/st6sy9xe.aspx) 只有同一類或結構中的代碼可以訪問該類型或成員。 [protected](https://msdn.microsoft.com/zh-CN/library/bcd5672a.aspx) 只有同一類或結構或者此類的派生類中的代碼才可以訪問的類型或成員。 [internal](https://msdn.microsoft.com/zh-CN/library/7c5ka91b.aspx) 同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。 **protected internal** 由其聲明的程序集或另一個程序集派生的類中任何代碼都可訪問的類型或成員。從另一個程序集進行訪問必須在類聲明中發生,該類聲明派生自其中聲明受保護的內部元素的類,并且必須通過派生的類類型的實例發生。 下面的示例演示如何為類型和成員指定訪問修飾符: ``` public class Bicycle { public void Pedal() { } } ``` 不是所有訪問修飾符都可以在所有上下文中由所有類型或成員使用,在某些情況下類型成員的可訪問性受到其包含類型的可訪問性的限制。以下各節提供了有關可訪問性的更多詳細信息。 ## 類和結構的可訪問性 直接在命名空間中聲明的類和結構(即,沒有嵌套在其他類或結構中的類和結構)可以是公共類和結構,也可以是內部類和結構。如果不指定訪問修飾符,則默認為 internal。 結構成員,包括嵌套的類和結構,可以聲明為公共的、 內部的,或私人的。類成員(包括嵌套的類和結構)可以為公共的、受保護的內部、受保護的、內部的或私有的。類成員和結構成員的訪問級別,包括嵌套類和結構,默認為私有。不可以從包含類型之外訪問私有嵌套類型。 派生類的可訪問性不能高于其基類型。換句話說,不能有從內部類 A 派生的公共類 B。如果允許這種情況,將會使 A 成為公共類,因為 A 的所有受保護的成員或內部成員都可以從派生類訪問。 可以使用 InternalsVisibleToAttribute 使其他某些程序集能夠訪問您的內部類型。有關更多信息,請參見[友元程序集(C# 和 Visual Basic)](https://msdn.microsoft.com/zh-CN/library/0tke9fxk.aspx)。 ## 類成員和結構成員的可訪問性 可以使用五種訪問類型中的任何一種來聲明類成員(包括嵌套的類和結構)。結構成員無法聲明為受保護成員,因為結構不支持繼承。 通常,成員的可訪問性低于包含成員的類型的可訪問性。如果由成員實現接口方法或重寫已在公共基類中定義的虛擬方法時,內部類的公共成員可以從外部程序集訪問。 任何成員的字段、 屬性或事件的類型必須至少與該成員本身一樣具備可訪問性。同樣,作為方法、索引器或代表的任一成員的返回類型和參數類型必須至少有與該成員本身一樣的可訪問性。例如,如果 C 不是公共類,則不能返回類 C 的公共方法 M。同樣,如果 A 聲明為私有,則類型 A 不能有受保護的屬性。 用戶定義的運算符必須始終聲明為公共運算符。有關更多信息,請參見 [運算符(C# 參考)](https://msdn.microsoft.com/zh-CN/library/s53ehcz3.aspx)。 析構函數不能具有可訪問性修飾符。 要設置類成員或結構成員的訪問級別,請向該成員聲明添加適當的關鍵字,如下面的示例所示。 ``` // public class: public class Tricycle { // protected method: protected void Pedal() { } // private field: private int wheels = 3; // protected internal property: protected internal int Wheels { get { return wheels; } } } ``` | ![](https://box.kancloud.cn/2016-01-31_56adb62c1380a.jpg) 注意 | | :-- | | 受保護內部可訪問性級別的意思是受保護“或”內部,而不是受保護“和”內部。換句話說,可以從同一程序集內的任何類(包括派生類)中訪問受保護的內部成員。若要限制為只有同一程序集內的派生類可以訪問,請將類本身聲明為內部,并將其成員聲明為受保護。 | ## 其他類型 直接用命名空間聲明時,可以將接口聲明為公共接口或內部接口,只與類和結構一樣,接口默認具有內部可訪問性。接口成員始終是公共成員,因為接口的用途是讓其他類型能夠訪問某個類或結構。訪問修飾符不能應用于接口成員。 枚舉成員始終是公共的,不能應用任何訪問修飾符。 委托行為類似于類和結構。默認情況下,它們在命名空間中直接聲明時具有內部訪問權,在嵌套時具有私有訪問權。 ## C# 語言規范 有關詳細信息,請參閱 [C# 語言規范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。該語言規范是 C# 語法和用法的權威資料。 ## 請參閱 [C# 編程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [類和結構(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173109.aspx) [接口(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173156.aspx) [private(C# 參考)](https://msdn.microsoft.com/zh-CN/library/st6sy9xe.aspx) [public(C# 參考)](https://msdn.microsoft.com/zh-CN/library/yzh058ae.aspx) [internal(C# 參考)](https://msdn.microsoft.com/zh-CN/library/7c5ka91b.aspx) [protected(C# 參考)](https://msdn.microsoft.com/zh-CN/library/bcd5672a.aspx) [class(C# 參考)](https://msdn.microsoft.com/zh-CN/library/0b0thckt.aspx) [struct(C# 參考)](https://msdn.microsoft.com/zh-CN/library/ah19swz4.aspx) [接口(C# 參考)](https://msdn.microsoft.com/zh-CN/library/87d83y5b.aspx)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看