同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
只有同一類或結構中的代碼可以訪問該類型或成員。
只有同一類或結構或者此類的派生類中的代碼才可以訪問的類型或成員。
同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。
由其聲明的程序集或另一個程序集派生的類中任何代碼都可訪問的類型或成員。 從另一個程序集進行訪問必須在類聲明中發生,該類聲明派生自其中聲明受保護的內部元素的類,并且必須通過派生的類類型的實例發生。
這里主要說一下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 |
|
新聞熱點
疑難解答