ref
和out的用法和區別
從工作到現在已經有半年了,卻一直被out 和ref 這個問題困擾著。看到它也就是模模糊糊。為了不失去我的原則(做技術永遠不可以「搗糨糊」),所以進來把這兩個東西研究下(在此作個記錄和學習心得,希望對同行有所幫助:
1、ref
的目的在於將值型別引數當作引用型引數傳遞到函式,是函式的輸入引數,並且在函式內部的任何改變也都將影響函式外部該引數的值;
ref
傳遞的是引數的位址(輸入引數)2、而
out的目的在於獲取函式的返回值,是輸出引數,由函式內部計算得到的值再回傳到函式外部,因此必須在函式內部對該引數賦值,這將沖掉函式外部的任何賦值,使得函式外部賦值毫無意義。
out
是返回值(輸出引數);
3、out 使用前,變數可以不進行賦值(意思是在使用時進行賦值,內部函式),ref 反之,使擁有前必須進行賦值(外部函式)。
ref out區別 ref 和out的幾句話
ref 和out的用法和區別 從工作到現在已經有半年了,卻一直被out 和ref 這個問題困擾著。看到它也就是模模糊糊。為了不失去我的原則 做技術永遠不可以 搗糨糊 所以進來把這兩個東西研究下 在此作個記錄和學習心得,希望對同行有所幫助 1 ref 的目的在於將值型別引數當作引用型引數傳遞到函式,是...
ref和out的區別
還是以例子來表明吧 1.ref int i 0 有函式fun ref i 和fun i 它們的函式體都是,那麼在執行以下兩段 後 1 int i 0 fun i system.console.writeline i.tostring 2 int i 0 fun ref i system.consol...
ref和out區別概要
一直知道ref和out都是引用型別傳值的。不過沒太明白他們之間的區別,今天又長了點小知識。大夥都知道,進行引數傳遞的時候如果想傳遞位址,可以使用ref或者out關鍵字。其實兩者都是按位址傳遞的,使用後都將改變原來的數值。主要不同點 ref是可以把引數的值傳遞進函式的,但是out在函式中必須首先賦值才...