C#:存取修飾詞

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   io   for   cti   

public

同一程式集中的任何其他代碼或引用該程式集的其他程式集都可以訪問該類型或成員。

private

只有同一類或結構中的代碼可以訪問該類型或成員。

protected

只有同一類或結構或者此類的衍生類別中的代碼才可以訪問的類型或成員。

internal

同一程式集中的任何代碼都可以訪問該類型或成員,但其他程式集中的代碼不可以。

protected internal

由其聲明的程式集或另一個程式集派生的類中任何代碼都可訪問的類型或成員。 從另一個程式集進行訪問必須在類聲明中發生,該類聲明派生自其中聲明受保護的內部元素的類,並且必須通過派生的類類型的執行個體發生。

 

這裡主要說一下protected internal,它所限定的存取權限是internal和protected的存取權限的並集,而不是交集,也就是說它的存取權限包括internal的存取權限和

protected的存取權限。可以用以下公式說明它的存取權限:

(protected internal)的存取權限=(internal)的存取權限+(protected)的存取權限

或者可以這麼理解

(protected internal)的存取權限=(internal)的存取權限∪(protected)的存取權限

 

存取權限的大小比較:

private<protected<protected internal<public或者private<internal<protected internal<public

protected的存取權限和internal的存取權限不具有可比性。

 

對於存取修飾詞,有以下幾點需要注意:

①一個成員或類型只能有一個存取修飾詞,但使用protected internal組合時除外。

②命名空間上不允許使用存取修飾詞。命名空間沒有訪問限制。

③根據出現成員聲明的上下文,只允許某些聲明的可訪問性。如果在成員聲明中未指定存取修飾詞,則使用預設的可訪問性。不嵌套在其他類型中的頂級類型的可訪問性只能是internal或public。這些類型的預設可訪問性是 internal。巢狀型別是其他類型的成員,它們可以具有下表所示的聲明的可訪問性。

屬於 預設的成員可訪問性 該成員允許的聲明的可訪問性
enum public

class

private

public
protected
internal
private
protected internal
interface public

struct

private

public
internal
private
  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.