C 使用ref和out傳遞陣列

2022-08-28 08:18:11 字數 1067 閱讀 6057

c#使用ref和out傳遞陣列

一、使用ref引數傳遞陣列

陣列型別的ref引數必須由呼叫方明確賦值。因此,接受方不需要明確賦值。接受方陣列型別的ref引數能夠修改呼叫方陣列型別的結果。可以將接受方的陣列賦以null值,或將其初始化為另乙個陣列。請閱讀引用型引數。

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

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

arr[0] = 11;

arr[4] = 55;

}static void main(string args)

;thearray(ref array);            // 使用ref傳遞陣列,呼叫方明確賦值

console.write("陣列元素為:");

for (int i = 0; i < array.length; i++)

console.readline();}}

}執行結果:

陣列元素為:11 2 3 4 55

二、使用out引數傳遞陣列

被呼叫方在使用陣列型別的out引數時必須為其賦值。請閱讀輸出引數。

示例:在呼叫方方法(main方法)中宣告陣列array,並在thearray方法中初始化此陣列。然後將陣列元素返回到呼叫方並顯示出來。

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

; // 必須賦值

}static void main(string args)

console.readline();}}

}執行結果:

陣列元素為:0 2 4 6 8

使用 ref 和 out 傳遞陣列

與所有的 out 引數一樣,在使用陣列型別的out引數前必須先為其賦值,即必須由接受方為其賦值。例如 public static void mymethod out int arr 與所有的 ref 引數一樣,陣列型別的ref引數必須由呼叫方明確賦值。因此不需要由接受方明確賦值。可以將陣列型別的re...

ref和out 傳遞引數 C

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

C 方法引數傳遞 同時使用ref和out關鍵字

在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。using system class program 調整後的分數為,加平時表現分後 score,refscore,outscore console.readkey private void changesc...