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个类型的返回值。

}

}

posted on 2012-09-29 14:59  百零八1900  阅读(156)  评论(0)    收藏  举报

导航