若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字,且传递到 ref 参数的参数必须最先初始化,否则会报错。例如:
class Pogram
{
static void Method(ref int i)
{
i = i + 10;
}
static void Main()
{
int val = 1; //参数val必须先初始化
Method(ref val);
Console.WriteLine(val);
}
}
而 out 的参数在传递之前不需要显式初始化,但结束时out的参数必须被赋值。例如:
class Program { public void Method(out int i) { i = 2;//必须被赋值 } static void Main() { int i; Program p = new Program(); p.Method(out i); Console.WriteLine("i="+i); Console.ReadKey(); } }