ref 關鍵字使參數按引用傳遞。其效果是,當控制權傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。
示例:
按引用傳遞值類型是有用的,但是 ref 對于傳遞引用類型也是很有用的。這允許被調用的方法修改該引用所引用的對象,因為引用本身是按引用來傳遞的。
usingSystem;
classApp
{
publicstaticvoidUseRef(refinti)
{
i+=100;
Console.WriteLine("i={0}",i);
}
staticvoidMain()
{
inti=10;
//查看調用方法之前的值
Console.WriteLine("Beforethemethodcalling:i={0}",i);
UseRef(refi);
//查看調用方法之后的值
Console.WriteLine("Afterthemethodcalling:i={0}",i);
Console.Read();
}
}
out 關鍵字會導致參數通過引用來傳遞。這與 ref 關鍵字類似。
與 ref 的不同之處:
示例:
與 ref 示例不同的地方只要將 ref 改為 out,然后變量 i 僅需要聲明即可。
usingSystem;
classApp
{
publicstaticvoidUSEOut(out inti)
{
i = 0;
i+=100;
Console.WriteLine("i={0}",i);
}
staticvoidMain()
{
inti;
//查看調用方法之前的值,這兒就不能使用了。
//Console.WriteLine("Beforethemethodcalling:i={0}",i);
UseOut(out i);
//查看調用方法之后的值
Console.WriteLine("Afterthemethodcalling:i={0}",i);
Console.Read();
}
}
新聞熱點
疑難解答