存取範圍層級 (C# 參考)

使用存取修飾詞 publicprotectedinternalprivate 來指定成員的下列其中一個已宣告存取範圍層級。

已宣告存取範圍 意義
public 未限制存取。
protected 存取限於包含類別或衍生自包含類別的類型。
internal 存取限於目前組件。
protected internal 存取限於目前組件或衍生自包含類別的類型。
private 存取限於包含類型。
private protected 存取限於目前組件內包含類別或衍生自包含類別的類型。

一個成員或類型只允許一個存取修飾詞,但合併使用 protected internalprivate protected 時除外。

命名空間上不允許存取修飾詞。 命名空間沒有存取限制。

根據發生成員宣告的內容,僅允許某些已宣告存取範圍。 如果未在成員宣告中指定任何存取修飾詞,則會使用預設存取範圍。

未巢狀於其他類型中的最上層類型,只能有 internalpublic 存取範圍。 這些類型的預設存取範圍是 internal

巢狀型別 (即其他類型的成員) 可以有下表中所指出的已宣告存取範圍。

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

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* 具有 private 存取性的 interface 成員必須具有預設實作。

注意

如果使用 record 關鍵字修飾元修改類別或結構,則允許相同的存取修飾元。
此外,使用 record 修飾元時,適用於類別和結構的預設成員協助工具仍是 private

巢狀型別的存取範圍取決於其存取範圍定義域,這是由成員的已宣告存取範圍和立即包含類型的存取範圍定義域所決定。 但是,巢狀型別的存取範圍領域不能超過包含型別 (Containing Type) 的存取範圍領域。

C# 語言規格

如需詳細資訊,請參閱<C# 語言規格>。 語言規格是 C# 語法及用法的限定來源。

另請參閱