谈谈C#的私有成员的一个有趣的现象!
大家都知道,一個(gè)類的私有成員只能在他的內(nèi)部訪問(wèn)!
但是不知道大家注意到?jīng)]有,實(shí)際上在C#中一個(gè)類的實(shí)例是可以訪問(wèn)同一個(gè)類的另外一個(gè)實(shí)例的私有成員的。
請(qǐng)看這段簡(jiǎn)單的代碼
public class MyClass
??? {
??????? private int i = 0;
?????? ?
??????? public void Function()
??????? {
??????????? MyClass a = new MyClass();
??????????? Console.WriteLine( a.i);? //這里成功訪問(wèn)了另外的一個(gè)實(shí)例a的私有實(shí)例字段
??????? }
? ?? }
大家也可以自己寫(xiě)一段類似的代碼來(lái)測(cè)試一下,的確是可以訪問(wèn)另外一個(gè)實(shí)例的私有成員!
為什么呢?因?yàn)镃#就是一開(kāi)始就是這樣設(shè)計(jì)的。實(shí)際上這個(gè)設(shè)計(jì)在某種程度上破壞了對(duì)象的封裝性,其他的面向?qū)ο蟮恼Z(yǔ)言可能就沒(méi)有做這樣的設(shè)計(jì)了。
希望大家可以注意到這個(gè)問(wèn)題,為了保證對(duì)象良好的封裝性,最好不要這樣訪問(wèn)啊!
轉(zhuǎn)載于:https://www.cnblogs.com/xuefeng1982/archive/2009/02/18/1393166.html
總結(jié)
以上是生活随笔為你收集整理的谈谈C#的私有成员的一个有趣的现象!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 做试管婴儿要住院多久?
- 下一篇: Gridview一次更新所有记录