C# ref out
对象之间的传递是引用传递。
ref是让值传递的方式转换为引用传递,所以对引用类型的变量来说没什么用。一般应用于值类型的传递中。ref参数必须先初始化。
out 可以不初始化 只需声明就可以了。就算初始话也会被在进入方法之前清空引用。。。也因为如此 out参数必须在方法里先初始话一下 也就是实例化一下 分配内存空间。
所以out适合需要多个返回值的情况。
out例子如下:
public class User
{
public string name;
public int age;
}
public class Program
{
static void f(out User user)
{
user= new User ();//进入之前必须先分配内存空间。如果是字符串等主类型直接赋值即可。
user.name="jacke";
user.age=24;
}
static void f(out User user,out string message,out int flag)
{
//分配内存空间
user=new User();
message="成功";
flag=0;
//逻辑部分
}
static void Main(string[] args)
{
User user;//不需要实例化,实例化也会被冲掉。
f(out user);
Console.WriteLine("姓名"+user.name+" 年龄"+user.age);//这里输出"姓名jackie 年龄24".
User user1;
string message;
int a;
f(out user1,out message,out a);
//这里就会得到3个类型的返回值。
}
}
浙公网安备 33010602011771号