标签:
相同点:都是输出参数
不同点:
ref:
1、必须初始化,即:必须赋初始值;
2.有进有出;
3、用在需要被调用的方法修改调用者的引用的时候。
4、是传递参数的地址
out:
1.不需要初始化,即:不需要赋初始值;
2、只出不进;
3、用在需要retrun多个返回值的地方;
4、返回值;
通过代码更直观的看出它们的区别:
class Program
{
static void Main(string[] args)
{
//num1,num2,必须赋值
int num1 = 10;
int num2 = 5;
Exchage(ref num1,ref num2);//调用方法,必须在变量前,必须加ref关键字
}
/// <summary>
/// 使用ref方法,参数必须加ref关键字
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
private static void Exchage(ref int num1,ref int num2)
{
//交换前
Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
int temp = num1;
num1 = num2;
num2 = temp;
//交换后
Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
Console.ReadKey();
}
class Program
{
static void Main(string[] args)
{
int sum;//不需赋值,即使赋值,也会被覆盖
NumSum(10,5,out sum);
Console.Write(sum);
Console.ReadKey();
}
/// <summary>
/// 求和
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <param name="sum"></param>
private static void NumSum(int num1,int num2,out int sum)
{
sum = num1 + num2;
}
}
标签:
原文地址:http://www.cnblogs.com/shouce/p/5141032.html