out,ref都相当于C语言里的传地址,而非传值
在C#里,所有的变量必须先初始化再使用。而使用out关键字,可以不先初始化变量而传递给方法。如:
//使用out关键字的方法
public void Print1(out int a)
{
   a = 3;
   Console.Write(a);
}//使用ref关键字的方法
public void Print2(ref int a)
{
   Console.Write(a);
}
public int a;
a = 3;  //这里必须将a初始化
print1(ref a);public int b;
print2(out b);  //这里可以不将a初始化而传递给方法

解决方案 »

  1.   

    out输出参数,ref引用传值
    public class Test
    {
        static void GetA(out int i)
        { 
            i = 10;  
        }
        static void GetB(ref int i)
        {
            i = 11;
        }  
     
        static void Main()
        {
             int a = 1;
             int b;
             GetA(out b);
             GetB(ref a);
             System.Console.WriteLine("a={0},b={1}",a,b);
        }
    }程序运行结果:a=11,b=10