1、out参数使用前必须由被调用方先为其赋值,也就是要在被调用的方法中先为其赋好值才能被调用。
例如:
class Program
{
static void Main(string[] args)
{
/****** 声明两个变量:int n1 = 1, n2 = 2;要求将两个变量交换,最后输出n1为2,n2为1。******/
int n1,n2;
NumExchange(out n1,out n2);
Console.WriteLine("n1={0},n2={1}",n1,n2);
Console.ReadKey();
}
public static void NumExchange(out int n1,out int n2) //此时被调用方法不需要明确定义返回值类型
{
int n3;
n1 = 1;
n2 = 2;
n3 = n1;
n1 = n2;
n2 = n3;
}
}
输出结果:n1=2 n2=1
2、ref参数必须由调用方为其赋值,被调用方不需要为其赋值。
例如:
class Program
{
static void Main(string[] args)
{
/****** 声明两个变量:int n1 = 1, n2 = 2;要求将两个变量交换,最后输出n1为2,n2为1。******/
int n1,n2;
n1=1;
n2=2;
NumExchange(ref n1,ref n2);
Console.WriteLine("n1={0},n2={1}",n1,n2);
Console.ReadKey();
}
public static void NumExchange(ref int n1,ref int n2) //此时被调用方法不需要明确定义返回值类型
{
int n3;
n3 = n1;
n1 = n2;
n2 = n3;
}
}
输出结果:n1=2 n2=1