使用 ref 和 out 傳遞陣列

2022-02-24 05:14:08 字數 1382 閱讀 6371

與所有的 out 引數一樣,在使用陣列型別的out引數前必須先為其賦值,即必須由接受方為其賦值。例如:

public static void mymethod(out int arr) 

與所有的 ref 引數一樣,陣列型別的ref引數必須由呼叫方明確賦值。因此不需要由接受方明確賦值。可以將陣列型別的ref引數更改為呼叫的結果。例如,可以為陣列賦以null值,或將其初始化為另乙個陣列。例如:

public static void mymethod(ref int arr) 

下面的兩個示例說明outref在將陣列傳遞給方法上的用法差異。

示例 1

在此例中,在呼叫方(main方法)中宣告陣列myarray,並在fillarray方法中初始化此陣列。然後將陣列元素返**用方並顯示。

//cs_array_ref_and_out.cs

using

system; 

class

testout ;}

static

public

void

main() }輸出

array elements are:12345

示例 2

在此例中,在呼叫方(main方法)中初始化陣列myarray,並通過使用ref引數將其傳遞給fillarray方法。在fillarray方法中更新某些陣列元素。然後將陣列元素返**用方並顯示。

//cs_array_ref_and_out2.cs

using

system; 

class

testref 

static

public

void

main () 

;  //pass the array using ref:

fillarray(

refmyarray);

//display the updated array:

console.writeline(

"array elements are:");

for(

inti =0

; i 

<

myarray.length; i

++) 

console.writeline(myarray[i]);}}

輸出

array elements are:

123234

1024

C 使用ref和out傳遞陣列

c 使用ref和out傳遞陣列 一 使用ref引數傳遞陣列 陣列型別的ref引數必須由呼叫方明確賦值。因此,接受方不需要明確賦值。接受方陣列型別的ref引數能夠修改呼叫方陣列型別的結果。可以將接受方的陣列賦以null值,或將其初始化為另乙個陣列。請閱讀引用型引數。示例 在呼叫方法 main方法 中初...

ref和out 傳遞引數 C

1.引數傳遞預設都是傳遞棧空間裡面儲存的內容 2.如果新增了ref那麼傳遞的都是棧空間位址,而不再是棧空間裡面的內容 3.如果新增了out,那麼傳遞的也是棧空間的位址 1 寫乙個方法計算乙個int型別陣列中每個元素的總和以及最大值和最小值 2 3 4 5 6 7static void gatvalu...

使用ref和out引數

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