C# 訪問修飾符
原文鏈接:http://www.rzrgm.cn/ysmc/p/18802674
介紹
在C#中,訪問修飾符(Access Modifiers)用于定義類型成員(如字段、屬性、方法等)或類型本身(如類、結(jié)構(gòu)體等)的可訪問性。訪問修飾符確定了其他類和程序集對這些成員或類型的訪問級別。以下是C#中常見的訪問修飾符:
public
- 定義:公共訪問級別,沒有任何訪問限制。
- 應(yīng)用:可以被任何其他代碼訪問,無論是在同一程序集還是在引用了該程序集的其他程序集中。
private
- 定義:私有訪問級別,只能在定義它們的類型內(nèi)部訪問。
- 應(yīng)用:通常用于隱藏類型的實現(xiàn)細(xì)節(jié),只能被同一個類或結(jié)構(gòu)體的代碼訪問。
protected
- 定義:受保護訪問級別,只能在定義它們的類或結(jié)構(gòu)體及其派生類中訪問。
- 應(yīng)用:適用于那些只想在類的繼承層次結(jié)構(gòu)中暴露的成員。
internal
- 定義:內(nèi)部訪問級別,只能在同一個程序集內(nèi)部訪問。
- 應(yīng)用:用于定義對其他程序集隱藏但對同一程序集中的其他類或成員可見的類型或成員。
protected internal
- 定義:受保護的內(nèi)部訪問級別,可以由同一程序集中的任何代碼訪問,或者由派生自該類的其他程序集中的代碼訪問。
- 應(yīng)用:這是一個組合訪問修飾符,提供了一種在程序集內(nèi)部或通過繼承在其他程序集中訪問成員的方式。
private protected
- 定義:私有受保護訪問級別,只能在其聲明所在的類或該類的派生類中訪問,并且只能在同一個程序集內(nèi)部。
- 應(yīng)用:這是C# 7.2中引入的較新的訪問修飾符,它進一步限制了受保護成員的訪問范圍。
無修飾符(默認(rèn)訪問級別)
- 類的默認(rèn)訪問級別:如果沒有指定訪問修飾符,則類默認(rèn)為
internal。 - 類成員的默認(rèn)訪問級別:如果沒有指定訪問修飾符,則類成員(包括字段、方法等)默認(rèn)為
private。
示例
1 public class MyClass 2 { 3 private int privateField; // 只能在MyClass內(nèi)部訪問 4 protected int protectedField; // 可以在MyClass及其派生類中訪問 5 internal int internalField; // 可以在同一程序集中的任何代碼訪問 6 protected internal int protectedInternalField; // 可以在同一程序集中的任何代碼或派生類中訪問 7 private protected int privateProtectedField; // 只能在MyClass及其派生類中訪問,并且只能在同一程序集中 8 9 public void MyMethod() 10 { 11 // 方法體,可以訪問上述所有字段 12 } 13 }
當(dāng)設(shè)計類和成員時,應(yīng)該遵循最小權(quán)限原則,即只提供必要的最小訪問級別。這有助于提高代碼的封裝性和安全性。
本文來自博客園,作者:一事冇誠,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/ysmc/p/18802674

浙公網(wǎng)安備 33010602011771號