對(duì)C#中public、private、protect的區(qū)別說(shuō)明
訪問(wèn)修飾符都知道是什么,但是在這之前沒(méi)有深入的去研究和探索,每天都接觸的東西應(yīng)該清楚才可以。
最基礎(chǔ)的三個(gè)訪問(wèn)修飾符:
public 、private、protect.在搜索過(guò)程中又看到有一種和他們放在了一起,那就是internal.接下來(lái)就四個(gè)訪問(wèn)修飾符做一個(gè)簡(jiǎn)答的總結(jié)和介紹。
public
公有訪問(wèn),不受任何限制。
private
私有訪問(wèn),只限于本類成員訪問(wèn),子類、實(shí)例都不能訪問(wèn)。
protected
保護(hù)訪問(wèn),只限于本類和子類訪問(wèn),實(shí)例不能訪問(wèn)。
internal
內(nèi)部訪問(wèn),只限于本項(xiàng)目?jī)?nèi)訪問(wèn),其他不能訪問(wèn)。
public人緣好,跟誰(shuí)都好,protect只和熟人好,private比較自閉.不過(guò)他們是三胞胎.class是他們的爹。
例:
比如說(shuō):一個(gè)人A為父類,他的兒子B,妻子C,私生子D(注:D不在他家里),如果我們給A的事情增加修飾符:
public事件,地球人都知道,全公開(kāi)
protected事件,A,B,D知道(A和他的所有兒子知道,妻子C不知道)
private事件,只有A知道(隱私?心事?)
internal事件,A,B,C知道(A家里人都知道,私生子D不知道)
注意事項(xiàng):
1, 命名空間上不允許使用訪問(wèn)修飾符。命名空間沒(méi)有訪問(wèn)限制。
2, 一個(gè)成員或類型只能有一個(gè)訪問(wèn)修飾符,使用 protectedinternal 組合時(shí)除外
3, assembly中的class默認(rèn)訪問(wèn)修飾符為internal
4, 類中的字段默認(rèn)為private
5, 類中的方法默認(rèn)為private,包括構(gòu)造函數(shù)
補(bǔ)充:C#中internal和protect internal的理解
internal
internal關(guān)鍵字是用來(lái)修飾類和類的成員的,表示該內(nèi)容只能在本程序集中訪問(wèn)。
程序集:一般輸出形式為dll或exe的文件。
例子:
如果某個(gè)程序集中,有如下的類:
namespace InternalTest { internal class InternalTest1 { ... } public class InternalTest2 { ... } }
那么在另外一個(gè)程序集中,可以訪問(wèn)InternalTest2,但是不能訪問(wèn)InternalTest2。
protect internal
protect internal 是指protect or internal是指:在同一程序集中,或派生類中可以訪問(wèn)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
C# FileSystemWatcher 在監(jiān)控文件夾和文件時(shí)的使用方法
這篇文章主要介紹了C# FileSystemWatcher 在監(jiān)控文件夾和文件時(shí)的使用方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以參考下2020-06-06Unity?UGUI的GraphicRaycaster射線投射組件介紹使用
這篇文章主要為大家介紹了Unity?UGUI的GraphicRaycaster射線投射組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07C#實(shí)現(xiàn)Word和ODT文檔相互轉(zhuǎn)換詳解
ODT文檔格式一種開(kāi)放文檔格式(OpenDocument Text)。本文以C#及VB.NET代碼展示ODT和Word文檔之間相互轉(zhuǎn)換的方法,感興趣的可以學(xué)習(xí)一下2022-05-05WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解
這篇文章主要介紹了WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法,實(shí)例分析了C#中實(shí)現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下2015-05-05C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>
這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02C# 鼠標(biāo)穿透窗體功能的實(shí)現(xiàn)方法
通過(guò)以下代碼,在窗體啟動(dòng)后調(diào)用方法SetPenetrate() 即可實(shí)現(xiàn)窗體的穿透功能,有需要的朋友可以參考一下2013-10-10