out和ref關鍵字的理解

1、通常情況下,在方法接收到了一個未被初始化的數值時,編譯器將產生錯誤。關鍵詞out指定了一個輸出參數,該參數是被調用方法將要對其賦值的參數,即參數可以不被初始化。另外,當希望方法返回多個值時,聲明out方法可以很好的解決問題。
2、ref 關鍵字使參數按引用傳遞。其效果是,當傳遞迴調用方法時,在方法中對參數的任何更改都將反映在該變量中。傳遞到ref 參數的參數必須最先初始化。
 
看一個簡單的例子:
static void Main(string[] args)
{
   int i;
   int j=2;
   Ret(out i, out j);//必須添加out關鍵字
   Cheng(ref j);//必須添加ref關鍵字
   Console.WriteLine(i);//結果爲3
   Console.WriteLine(j);//結果爲6
}

//使用out關鍵字引用傳遞,使用這種方法可以實現函數返回多個值的問題
static void Ret(out int i,out int j)
{
   i = 3;
   j = 3;//必須對out參數賦值
}

//使用ref關鍵字引用傳遞
static void Cheng(ref int i)
{
   i *= 2;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章