使用ref和out引數

2021-06-04 01:06:44 字數 480 閱讀 7812

通過ref和out關鍵字,可以以引用的方式傳遞任何型別的值。這樣做,將允許改變呼叫過程中使用的實參值。

在研究ref和out的機制之前,首先有必要理解為什麼需要以引用方式來傳遞值型別。通常有兩個原因:使方法能改變其實參的值或者允許方法有多個返回值。

ref引數修飾符使得c#可以建立按引用呼叫,而不是按值呼叫。在宣告和呼叫方法是,需要使用ref修飾符。

其中對於ref需要理解的關鍵一點是:通過ref傳遞的實參必須在呼叫之前被賦值。原因是接受這種實參的方法基於指向乙個有效值的假設。因此,使用ref關鍵字時,不能使用方法來給實參賦初始值。 .

使用out關鍵字:

out引數類似於ref引數,但有一點例外:它只能用於將值傳出方法的情形。在呼叫方法之前,不必給作為out引數使用的變數賦初值。該方法將給變數賦值。而且,在方法內部,out引數被認為是未賦值的(unassigned),即認為它沒有初始值。這意味著不必再方法呼叫前給引數賦值。在呼叫方法之後,out引數將包含值。

使用ref和out引數

ref型別引數側重修改,out型別引數側重輸出 ref在傳入值之前必須先初始化 out在函式內,函式結束之前,即傳出值之前初始化.eg protected void page load object sender,eventargs e int indexref 1 testref ref inde...

ref引數和out引數

引數對於每個學習程式設計的人都很清楚,在任何程式中都不可能沒有引數,下面我就說說乙個特殊的引數型別,其實這個也不算什麼特殊引數了,在c 中已經沒有像c中那樣的指標的概念了,但是有的時候有些時候要寫特殊的處理,其實c 中並不是完完全全放棄這個概念的,下面就寫下這類特殊的引數。引用引數ref 當乙個引數...

C 下ref和out 引數使用

csharp using system using system.collections.generic using system.text namespace csharp下ref及out關鍵字使用 public int outvalue int i,out int j private void ...