在C#中Out和Ref使用方法基本一样。
Out使用时其实参数可以不赋值,在使用时在实参数前面加上Out,如下:Out variable,在接下来的被调用的方法中,把variable初始化,在方法返回的时候,此variable的值会被修改后返回,当然variable在调用之前赋值也不会有问题。
Ref在使用的时候,被ref的参数必须要先被赋值,然后在调用其他方法时在variable前面加上Ref,如下:ref variable,这个变量在接下里的方法中被改写后会返回来。
Out 和 Ref 这两个参数类型的限制有不同的作用。
static void Main(string[] args)
{
int arg; /*This variable must be initialized before being used.*/
arg = 0;
Add(ref arg);
Console.WriteLine("The arg is {0}", arg);
int argOut;/*This variable initialization is not necessary before being used.*/
/*argOut = 0;*/
AddOut(out argOut);
Console.WriteLine("The argOut is {0}",argOut);
Console.ReadKey();
}
static void Add(ref int num)
{
num++;
}
static void AddOut(out int num)
{
num = 1;
num++;
}
网友评论