using System;
namespace Method6
{
class Test
{
//值方法,参数I会重新在堆栈中分配空间,不影响传进时的参数
static void addi(int i)
{
i++;
}
//ref 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数需要被初始化]
static void addiref(ref int i)//与OUT不能定义完全相同
{
i++;
}
//out 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数不能被初始化在方法体中初始化]
static void addiout(out int i)//与REF不能完全定义相同
{
i = 0;
i++;
}
static void Main()
{
//值调用,得0
int a = 0;
addi(a);
Console.WriteLine(a);
//ref调用,传参前需初始化,得1
int b = 0;
addiref(ref b);
Console.WriteLine(b);
//out调用,传参前不要去初始化(因为必须在调用的方法体中初始化),得1
int c;
addiout(out c);
Console.WriteLine(c);
}
}
}
namespace Method6
{
class Test
{
//值方法,参数I会重新在堆栈中分配空间,不影响传进时的参数
static void addi(int i)
{
i++;
}
//ref 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数需要被初始化]
static void addiref(ref int i)//与OUT不能定义完全相同
{
i++;
}
//out 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数不能被初始化在方法体中初始化]
static void addiout(out int i)//与REF不能完全定义相同
{
i = 0;
i++;
}
static void Main()
{
//值调用,得0
int a = 0;
addi(a);
Console.WriteLine(a);
//ref调用,传参前需初始化,得1
int b = 0;
addiref(ref b);
Console.WriteLine(b);
//out调用,传参前不要去初始化(因为必须在调用的方法体中初始化),得1
int c;
addiout(out c);
Console.WriteLine(c);
}
}
}

浙公网安备 33010602011771号