C 訪問 修飾符

2021-06-07 13:44:39 字數 1725 閱讀 9057

例:internal class a{}

public class b:a{}是不允許的;

public class c是不允許的.

msdn參考:

訪問修飾符(c# 程式設計指南)

所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他**中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性:

public

(可以修飾類)

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

private

(成員的預設訪問修飾符)

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

protected

只有同一類或結構或者派生類中的**可以訪問該型別或成員。

internal

(可以修飾類,類的預設修飾符)

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

protected internal

同一程式集中的任何**或其他程式集中的任何派生類都可以訪問該型別或成員。

下面的示例演示如何為型別和成員指定訪問修飾符:

不是所有訪問修飾符都可以在所有上下文中由所有型別或成員使用,在某些情況下型別成員的可訪問性受到其包含型別的可訪問性的限制。以下各節提供了有關可訪問性的更多詳細資訊。

直接在命名空間中宣告的類和結構(即,沒有巢狀在其他類或結構中的類和結構)可以是公共類和結構,也可以是內部類和結構。如果不指定訪問修飾符,則預設為 internal。巢狀的類和結構還可以宣告為私有類和結構。不可以從包含型別訪問私有巢狀型別。

派生類的可訪問性不能高於其基型別。換句話說,不能有從內部類 a 派生的公共類 b。如果允許這種情況,將會使 a 成為公共類,因為 a的所有受保護的成員或內部成員都可以從派生類訪問。

可以使用 internalsvisibletoattribute 使其他某些程式集能夠訪問您的內部型別。有關更多資訊,請參見友元程式集(c# 程式設計指南)。

可以使用五種訪問型別中的任何一種來宣告類成員(包括巢狀的類和結構)。結構成員無法宣告為受保護成員,因為結構不支援繼承。

成員的可訪問性決不能高於其包含型別的可訪問性。例如,在內部型別中宣告的公共方法只具有內部可訪問性。

如果類或結構的成員為屬性、字段、方法、事件或委託,並且該成員是某個型別或具有引數或返回值型別,則該成員的可訪問性不能超過該型別。例如,如果 c 不是公共類,則不能返回類 c 的公共方法 m。同樣,如果 a 宣告為私有,則型別 a 不能有受保護的屬性。

使用者定義的運算子必須始終宣告為公共運算子。有關更多資訊,請參見 operator(c# 參考)

。析構函式不能具有可訪問性修飾符。

若要設定類成員或結構成員的訪問級別,請向該成員宣告新增適當的關鍵字。下面是一些示例:

protected

internal 可訪問性的意思是受保護「或」內部,而不是受保護「和」內部。換句話說,可以從同一程式集內的任何類(包括派生類)中訪問 protected

internal 成員。若要限制為只有同一程式集內的派生類可以訪問,請將類本身宣告為內部,並將其成員宣告為受保護。

直接用命名空間宣告時,可以將介面宣告為公共介面或內部介面,並且與類和結構一樣,介面預設具有內部可訪問性。介面成員始終是公共成員,因為介面的用途是讓其他型別能夠訪問某個類或結構。訪問修飾符不能應用於介面成員。

列舉成員始終是公共的,不能應用任何訪問修飾符。

預設情況下,委託預設具有內部訪問級別。

出處:

C 訪問修飾符

所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性 public 訪問不受限制。可以類內和任何類外的 中訪問。private 可以被所屬類訪問。只有同一類或結構中的 可以訪問該型別或成員。pro...

C 訪問修飾符

public 公開的公共的 private 私有的,只能在當前類的內部訪問,類中的成員如果不加訪問修飾符,預設就是 private protected 受保護的,只能在當前類的內部以及該類的子類中訪問。internal 只能在當前專案中訪問。在同乙個專案中,internal 和public 的許可權...

C 訪問修飾符

原文傳送門 封裝被定義為 把乙個或多個專案封閉在乙個物理的或者邏輯的包中 在物件導向程式設計方 中,封裝是為了防止對實現細節的訪問。抽象和封裝是物件導向程式設計的相關特性。抽象允許相關資訊視覺化,封裝則使程式設計師實現所需級別的抽象。封裝使用 訪問修飾符 來實現。乙個 訪問修飾符 定義了乙個類成員的...