一,相同点:二者都是引用类型变量。
二,不同点:见下
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 ();
}
}
本文通过具体的C#代码示例对比了ref与out两种参数传递方式的区别。阐述了两者在变量初始化上的不同要求,即使用ref时变量必须已初始化,而out则允许未初始化但需在方法内赋值。
412

被折叠的 条评论
为什么被折叠?



