一道关于C#参数传递的面试题分析
发布时间:2020-12-15 03:49:29 所属栏目:百科 来源:网络整理
导读:本文实例分析了一道关于C#参数传递的面试题。供大家参考研究。具体如下: 1.定义一个类MPigeon,调用一个Swap交互函数,问最后实参的结果是什么 类定义: public class MPigeon{public string Name { get; set; }} 交换函数: public void Swap(object a,
本文实例分析了一道关于C#参数传递的面试题。分享给大家供大家参考。具体如下: 1.定义一个类MPigeon,调用一个Swap交互函数,问最后实参的结果是什么 类定义: public class MPigeon { public string Name { get; set; } } 交换函数: public void Swap(object a,object b) { object temp=a; a=b; b=temp; } 测试代码: private void button2_Click(object sender,EventArgs e) { MPigeon a = new MPigeon() { Name = "Black" }; MPigeon b = new MPigeon() { Name = "White" }; Swap(a,b); string ResultMsg = string.Format("a:{0},b:{1}",a.Name,b.Name); MessageBox.Show(ResultMsg); } 结果显示如下: 结果分析: 由于实参变量和形参变量都是引用类型,它们都指向内存堆中的某一对象的地址, (注意:swap函数只是交互了一下形参的地址而已,而没有改变它们的值,如果改变了值,那实参的值也会跟着改变) 例如: public void Swap2(object a,object b) { ((MPigeon)a).Name = "Ronaldo"; ((MPigeon)b).Name = "Rivaldo"; } 希望本文所述对大家的C#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |