C#中有些存取修飾詞像是Pubilc、Private等等
這兩個較常用到(對於小型專案或是只有基本功能的程式碼)
然而面試時可能就會問到其他項
以下便來一一介紹
(1) Pubilc :全部都可以呼叫到
(2) Private :只有在同一個類別中的函數呼叫到
(3) Protected :同個類別以及繼承的類別可以呼叫到
(4) internal : 同一段編譯出來的程式碼可以呼叫到(也就是同一個namespace/assembly)
(5) Protected internal :就是屬於Protected或internal其中任一項可以呼叫到
(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的權限下才能接收到資訊