C# 参数传递、引用传递的一些个人理解
2013-07-30 19:33
381 查看
2013-07-30 17:09:26
1-6行的代码:第5行的代码定义了a,b两个实际参数,当调用Swap(a,b)方法,方法中的参数a,b是,实际参数的值的副本,方法中的a,b值转换只是原来参数的副本,在方法外原参数未改变,基本数据类型默认是值传递的。
7-12行的代码:Swap(ref int a,ref int b)方法中的ref关键字所定义的参数a,b是引用类型传递了,方法中的值转换,不再是副本,因此转换后,在方法外参数也发生变化了.
using System; class Program { static void Swap(int a,int b) { int t=a;a=b;b=t; } static void Main() { int a=3,b=5; Swap(a,b); Console.WriteLine("a={0} b={1}",a,b); } } 改成引用传递后: using System; class Program { static void Swap(ref int a,ref int b) { int t=a;a=b;b=t; } static void Main() { int a=3,b=5; Swap(ref a,ref b); Console.WriteLine("a={0} b={1}",a,b); } }
1-6行的代码:第5行的代码定义了a,b两个实际参数,当调用Swap(a,b)方法,方法中的参数a,b是,实际参数的值的副本,方法中的a,b值转换只是原来参数的副本,在方法外原参数未改变,基本数据类型默认是值传递的。
7-12行的代码:Swap(ref int a,ref int b)方法中的ref关键字所定义的参数a,b是引用类型传递了,方法中的值转换,不再是副本,因此转换后,在方法外参数也发生变化了.
相关文章推荐
- C#中有关于:按 值 和 引用 传递参数 的理解
- 理解C#中参数的值和引用以及传递结构和类引用的区别
- Java参数传递造成参数值改变的情况--值传递和引用传递的初步理解
- 关于html参数传递的一些理解
- 深入理解C#之 参数传递 ref out params
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- c#中通过值和引用传递参数(downmoon)
- 函数参数与函数调用(彻底理解值传递与引用传递)
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 传递引用类型参数(C# 编程指南)
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- 在java中实现C#语法里的按引用传递参数的方法
- 【原创】理解C#的引用类型的值传递
- c#中通过值和引用传递参数(downmoon)
- 理解数组和引用作为参数和返回值传递
- c#中通过值和引用传递参数
- C# - 函数参数的传递(值传递和引用传递)
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- C# 数据类型的引用类型、值类型内存存储方式以及区别; 函数参数传递的引用传递(址传递)、值传递区别