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

C# 類別方法存取修飾詞完整解析

     編輯:關於C語言

五種存取層級

修飾詞可存取範圍適用對象
`private`僅宣告類別內部預設、內部實作細節
`protected`宣告類別 + 衍生類別提供給子類別擴充
`internal`同一組件 (專案) 內組件內部公用 API
`protected internal`同一組件 或 衍生類別 (C# 7.2 前為 OR)跨組件繼承場景
`public`任何參考該組件的程式碼對外公用 API

C# 7.2 新增 `private protected`:同一組件內的衍生類別 (AND 語意)。

程式碼示範


class MyClass
{
    string PrivateMethod() => "Private";
    protected string ProtectedMethod() => "Protected";
    internal string InternalMethod() => "Internal";
    public string PublicMethod() => "Public";
}

class Program
{
    static void Main()
    {
        var obj = new MyClass();
        // obj.PrivateMethod();   // 錯誤
        // obj.ProtectedMethod(); // 錯誤
        Console.WriteLine(obj.InternalMethod()); // Internal
        Console.WriteLine(obj.PublicMethod());   // Public
    }
}

設計原則

  1. 最小權限原則:預設 `private`,需要時再放寬
  2. 公開 API 僅暴露 `public`/`internal`
  3. `protected` 供衍生類別覆寫/呼叫核心邏輯
  4. 避免 `protected internal` 混淆,改用 `public` + 文件說明或 `private protected`
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved