您的位置:首页 > 编程语言 > C#

C# 参数传递、引用传递的一些个人理解

2013-07-30 19:33 381 查看
2013-07-30 17:09:26

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是引用类型传递了,方法中的值转换,不再是副本,因此转换后,在方法外参数也发生变化了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: