首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 類別成員存取修飾詞完整對照表與說明

     編輯:關於C#

存取層級對照表

修飾詞類別內部同組件衍生類別同組件其他類別不同組件衍生類別不同組件其他類別
private✔✘✘✘✘
protected✔✔✘✔✘
internal✔✔✔✘✘
protected internal✔✔✔✔✘
public✔✔✔✔✔
private protected (C# 7.2+)✔✔✘✘✘

各修飾詞詳細說明

public — 完全公開

無任何限制,任何能引用該組件的程式碼皆可存取。適用於公開 API、介面實作。

protected — 衍生類別可見

限定於「宣告該成員的類別」及「衍生自該類別的類別」。跨組件仍生效。適用於基類提供給子類擴充的方法/欄位。

internal — 組件內部公開(預設)

僅限「同一組件」內的程式碼存取。不同組件即使衍生也不可見。適用於組件內部協作、隱藏實作細節。

protected internal — 衍生類別 或 同組件

「protected」與「internal」的邏輯 OR:同組件任意類別、或不同組件的衍生類別皆可存取。適用於跨組件擴充同時允許組件內自由使用。

private — 僅類別內部

最嚴格限制,僅宣告該成員的類別本身可存取。巢狀類別也可存取外層 private 成員。適用於封裝實作細節。

private protected — 衍生類別 且 同組件 (C# 7.2+)

「protected」與「internal」的邏輯 AND:必須同時滿足「同組件」且「衍生類別」。比 protected 更嚴格,比 internal 更精準。

選擇指南

  • 預設用 private,需要時再放寬。
  • 基類給子類用:protected(跨組件)或 private protected(僅組件內)。
  • 組件內部工具類互相呼叫:internal。
  • 公開介面/給第三方用:public。
  • 「組件內隨意用、跨組件只給子類」:protected internal。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved