iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
Software Development

如果可以,我想用30天的時間打造一間抵霸閣系列 第 23

[Day23]抵霸閣-關於C#的存取修飾詞那回事

  • 分享至 

  • xImage
  •  

C#中有些存取修飾詞像是Pubilc、Private等等
這兩個較常用到(對於小型專案或是只有基本功能的程式碼)
然而面試時可能就會問到其他項
以下便來一一介紹
(1) Pubilc :全部都可以呼叫到
(2) Private :只有在同一個類別中的函數呼叫到
(3) Protected :同個類別以及繼承的類別可以呼叫到
(4) internal : 同一段編譯出來的程式碼可以呼叫到(也就是同一個namespace/assembly)
(5) Protected internal :就是屬於Protectedinternal其中任一項可以呼叫到
(6) private protected:同一個namespace內包含類別或衍生自包含類別的類型

存取範圍排序(大->小):Pubilc>Protected internal>internal>=Protected>private protected>Private
其中每個成員都只能有一個存取修飾詞
(但因Protected internal跟private protected算是兩個詞組合而成的 所以例外)
然而前幾天介紹到的enum預設就是public
不能改成其他的

來講一段童話故事好了
有兩個國家分別名為麵包愛情
而兩國皆有國王、皇后、王子、公主
然而麵包國的王子與愛情國的公主相戀
但這兩國是世仇 所以是不被麵包國的國王允許的戀情
(而愛情國的人們因為相信愛情可以改變一切
就接納了麵包國的王子)
於是這小倆口便安身在愛情國的愛琴海邊別墅

麵包國的國王就爆氣
為了讓兒子嚐嚐不聽話的後果
駭進了全世界的廣播系統
藉由某種特殊的音波來發送訊息
但有些事只想給部分的人知道
因此區分了以下這些權限
Pubilc :全世界的人都聽得到(麵包國愛情國)
Private :只有麵包國的國王自己聽得到(個人獨享)
Protected :麵包國的國王和他所有的子嗣們聽得到(包含私奔的麵包國王子)
internal : 還留在麵包國的所有人都聽得到(不含私奔的麵包國王子)
Protected internal :[留在麵包國的所有人]or[麵包國國王所有的子嗣們]的其中一項聽得到
private protected:麵包國的國王和他所有的子嗣們(不包含私奔的麵包國王子)聽得到
也就是說在愛情國除了從麵包國偷跑來的王子外 就只有在Pubilc的權限下才能接收到資訊


上一篇
[Day22]抵霸閣-今晚要不要來一點static
下一篇
[Day24]抵霸閣-程式碼的「斷捨離」
系列文
如果可以,我想用30天的時間打造一間抵霸閣30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言