大家看看这段代码当中参数是如何传递的?内存是如何分配的??在线等 在 Caculate()中形参employee指向和chen相同的实例,在该方法中又新建了一个实例temployee,最后一句让形参employee指向temployee,因为形参前面没有ref,所以对该形参的操作不会对实参chen造成影响,chen仍然指向原来的实例. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想可能是这样的: 在chen这个对象中分配了存储空间,当没有加ref时,employee就相当于是他的一个副本。 而加了ref后就想当于直接在分配给chen的空间上操作了。 仅供参考哈。 比較同意 hanyaocsdn 的觀點,呵呵 你的Caculate是错误的,employee传进来的只是一个副本.因为你的employee不是ref或out,所以它不会回传,你计算后的temployee和employee随着Caculate的销毁而销毁了. 楼上两位朋友分析的有道理。可不可以这样说:在没有ref的情况下。在方法当中使用按值传递引用类型的时候。它传递的是对象的值。也就是托管堆当中的值。在Employee temployee=new Employee(); temployee.Salary=employee.Salary; temployee.Sex=employee.Sex; temployee.Salary=temployee.Salary-(temployee.Salary*22/100);当中temployee实例已经在堆上有新的内存分配了。所以在最后的一句让employee指向temployee时,由于没有传递引用。故不对chen这个实例产生影响。不知道我这么分析是不是对的呢 同意DataLife(自由风) 的说法。 C#开发XML模版维护工具 新闻网站的相关阅读或相关文章是怎么实现的? 文件追加写入问题 vs2008 制作安装包显示版本号 2003程序升级到2005下产生的问题求帮助 求助:如果查询一个表中内容,并把符合条件的写入另一个表中 一个音乐网站,怎么分辨出用户是在用Winamp在线播放、还是用IE下载呢 treeView中如何判断接点的层次?再线等; Windows Form下控件封装的问题 wpf 之 GDI+错误(第一次可以,第二次失败) 我晕了。string类型到底是不是引用类型阿??怎么他这么像值类型呢? 一个Modem自动拨号的问题!
在chen这个对象中分配了存储空间,当没有加ref时,employee就相当于是他的一个副本。
而加了ref后就想当于直接在分配给chen的空间上操作了。
仅供参考哈。
Employee temployee=new Employee();
temployee.Salary=employee.Salary;
temployee.Sex=employee.Sex;
temployee.Salary=temployee.Salary-(temployee.Salary*22/100);
当中temployee实例已经在堆上有新的内存分配了。所以在最后的一句让employee指向temployee时,由于没有传递引用。故不对chen这个实例产生影响。
不知道我这么分析是不是对的呢