首页 新闻 搜索 专区 学院

C# 中传入引用类型的问题

0
悬赏园豆:15 [已解决问题] 解决于 2017-04-09 12:46

我今天按照下面这个博客学习委托和事件,结果发现在main函数中变量a的属性值为什么会通过变量b和c来赋值呢?

我是想,因为类B和C中都自己定义了一个私有的变量a,当实例化的时候,应该也是各自内部的变量a被赋值,为什么结果是都把值赋到main函数的变量a中了?

是不是由于是引用类型的原因?大神能否从堆栈角度具体解释下,或者其他深层次的原因?

http://www.cnblogs.com/yinqixin/p/5056307.html

HNLY的主页 HNLY | 初学一级 | 园豆:95
提问于:2017-04-03 18:04
< >
分享
最佳答案
0

你那个a都是同一个对象咯。

这个地方就是个引用的问题嘛,引用对象在栈上就一个指针,指向堆上的数据。

比如 A a=new A(someReferenceObjectInstance);

B b=new B(someReferenceObjectInstance);

这个地方someReferenceObjectInstance是同一个对象,你不管是在a实例还是b实例中对这个对象操作也都是同一个。

收获园豆:15
Daniel Cai | 专家六级 |园豆:10424 | 2017-04-03 18:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册