前言
引數陣列
在c#中,可以為函式指定乙個不定長的引數,這個引數是函式定義中的最後乙個引數,這個引數叫做引數陣列。
下面是乙個例子:
namespace ch6ex2
return sum;
} static void main(string args)
");console.readkey();
} }}
函式sumvals有乙個引數陣列,即vals,在定義該引數時,需要使用params引數。在呼叫該函式時,可以給引數輸入傳入多個實參。
使用分布式傳參時,編譯器做如下事:
1)接受實參列表,用它們在堆中建立並初始化乙個陣列。
2)把陣列的引用儲存到棧中的形參裡。
3)如果在對應的形引數組的位置沒有實參,編譯器會建立乙個有零個元素的陣列來使用。
4)如果陣列引數是值型別,那麼值被複製,實參不受方法內部的影響。
5)如果陣列引數是引用型別,那麼引用被複製,實參引用的物件可以受到方法內部的影響。
在使用陣列式傳參時,編譯器使用你的資料而不是重新建立乙個。即相當引用引數。
引用引數
可以通過引用傳遞引數,需要使用ref關鍵字。
下面是乙個例子:
namespace myprogram
static void main(string args)
, b = ");
swapints(ref a, ref b);
console.writeline($"a = , b = ");
console.readkey();
} }}
這是乙個簡單的交換兩個值的程式,由於函式swapints使用了引用引數,所以可以在函式中修改變數a和b的值,需要注意的是,在呼叫函式時也要使用ref傳遞引用引數。
輸出引數
輸出引數使用out關鍵字,它的效果與引用引數幾乎相同,不同點是:
下面是乙個例子:
namespace myprogram
} return maxvalue;
} static void main(string args)
; int maxvalue = maxvalue(intarray, out maxindex);
console.writeline($"maxvalue = , maxindex = .");
console.readkey();
} }}
這個函式將乙個陣列中最大值的索引作為輸出引數,返回最大值。
總結本文標題: c#中引數陣列、引用引數和輸出引數示例詳解
本文位址:
C 值引數 引用引數和輸出引數
一 值引數 在使用引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不會影響函式呼叫中指定的引數。由於函式只有乙個返回值,不能用作引數的多個變數值 二 引用引數 即函式處理的變數與函式呼叫中使用的變數相同,而不僅僅是值相同的變數。因此,對這個變數的任何改變都會影響用作引數的變數值...
C 引數陣列與陣列引數
1 陣列作為引數來傳遞時,當呼叫這個函式時裡面的引數需要new乙個陣列 2 引數陣列就是在函式的陣列引數前面加上params,當呼叫函式傳遞陣列時不需要再new乙個,只需要傳遞任意個跟陣列引數型別相同的數就可以 using system namespace 1 引數陣列 return sum sta...
C 引數陣列
引數陣列,通過關鍵字params定義引數陣列,paras型別引數主要用於在對陣列長度未知 可變 的情況下進行函式宣告,呼叫時可以傳入個數不同的實參,具備很好的靈活性。首先給出乙個具體的例子介紹引數陣列 params 的具體用法,首先定義乙個帶有引數陣列的方法 using system public ...