out的使用
—————————————————————————————————————————————————
class Program
{
static void Main(string[] args)
{
string tmp; //先宣告,但不初始化
User _user=new User();
_user.Name(out tmp); //呼叫Name方法
Console.WriteLine("{0}",tmp); //這時tmp的值為“在這里面賦值了”
Console.ReadKey(true);
}
}
class User
{
public void Name(out string tmps)
{
tmps="在這里面賦值了";
}
}
結果:
在這里面賦值了
—————————————————————————————————————————————————
ref的使用
—————————————————————————————————————————————————
class Program
{
static void Main(string[] args)
{
string tmp="傳值之前"; //宣告并初始化 這時如果輸出tmp值為"傳值之前"
User _user=new User();
_user.Name(ref tmp);
Console.WriteLine("{0}",tmp);
Console.ReadKey(true);
}
}
class User
{
public void Name(ref string tmps)
{
tmps="傳值之后";
}
}
結果:
傳值之后
—————————————————————————————————————————————————
區別:
ref和out的區別在C# 中,既可以通過值也可以通過參考傳遞引數,通過參考傳遞引數允許函式成員更改引數的值,并保持該更改,若要通過參考傳遞引數, 可使用ref或out關鍵字,ref和out這兩個關鍵字都能夠提供相似的功效,其作用也很像C中的指標變數,它們的區別是:
1、使用ref型引數時,傳入的引數必須先被初始化,對out而言,必須在方法中對其完成初始化,
2、使用ref和out時,在方法的引數和執行方法時,都要加Ref或Out關鍵字,以滿足匹配,
3、out適合用在需要retrun多個回傳值的地方,而ref則用在需要被呼叫的方法修改呼叫者的參考的時候,
out
方法引數上的 out 方法引數關鍵字使方法參考傳遞到方法的同一個變數,當控制傳遞回呼叫方法時,在方法中對引數所做的任何更改都將反映在該變數中,
當希望方法回傳多個值時,宣告 out 方法非常有用,使用 out 引數的方法仍然可以回傳一個值,一個方法可以有一個以上的 out 引數,
若要使用 out 引數,必須將引數作為 out 引數顯式傳遞到方法,out 引數的值不會傳遞到 out 引數,
不必初始化作為 out 引數傳遞的變數,然而,必須在方法回傳之前為 out 引數賦值,
屬性不是變數,不能作為 out 引數傳遞,
ref是 有進有出,而out是 只出不進,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/42838.html
標籤:C#
