一,相同点:二者都是引用类型变量。
二,不同点:见下
class paramtest
{
void testRef(ref int i)
{
i++;
}
void testOut(out int i)
{
i = 1; // --(3)
i++;
}
static void Main(string[] args)
{
int pRef = 1; //--(1)
int pOut; //-(2)
paramtest p = new paramtest();
p.testRef(ref pRef ); //使用ref为标志符时,参数变量必须被声明且初始化,如(1)
Console.WriteLine("pRef={0}",pRef);
p.testOut(out pOut);
//使用out 为标志符时,参数变量必须被声明而不需要初始化,如(2)
//但是在调用的方法体中必须为该变量进行初始化,如(3)
Console.WriteLine("pOut={0}",pOut);
Console .Read ();
}
}