为了账号安全,请及时绑定邮箱和手机立即绑定

C# swap ref 的问题

C# swap ref 的问题

C#
慕工程0101907 2018-12-07 02:47:09
   public class DicTestClass { public DicTestClass(int a) { mAA = a; } public int mAA = 0; } public static void SwapRightListItem(ref DicTestClass left, ref DicTestClass right) { DicTestClass temp = null; temp = right; right = left; left = temp; } static void Main(string[] args) { DicTestClass aaa = new DicTestClass(1); DicTestClass bbb = new DicTestClass(2); SwapRightListItem(ref aaa, ref bbb); Console.WriteLine(" aaa:" + aaa.mAA); Console.WriteLine(" bbb:" + bbb.mAA); } 上面的代码:输出值是2,1   如果全去掉ref  输出值是1,2    为什么?   class不已经是引用类型了吗???
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

不加ref的话,你只交换的是SwapRightListItem参数left、right的引用对象,而外面的aaa, bbb的引用对象并没有改变

查看完整回答
反对 回复 2018-12-24
  • 1 回答
  • 0 关注
  • 721 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信