一、值參數(shù):不含任何修飾符。方法中的形參是實(shí)參的一份拷貝,形參的改變不會(huì)影響到內(nèi)存中實(shí)參的的值,實(shí)參是
安全的。
二、引用參數(shù):以ref修飾符聲明。傳遞的參數(shù)實(shí)際上是實(shí)參的指針,所以在方法中的操作都是直接對(duì)實(shí)參進(jìn)行的,而不是復(fù)制一個(gè)值;可以利用這個(gè)方式在方法調(diào)用時(shí)雙向傳遞參數(shù);為了以ref方式使用參數(shù),必須在方法聲明和方法調(diào)用中都明確地指定ref關(guān)鍵字,并且實(shí)參變量在傳遞給方法前必須進(jìn)行初始化。
三、輸出參數(shù):以out修飾符聲明。和ref類似,它也是直接對(duì)實(shí)參進(jìn)行操作。在方法聲明和方法調(diào)用時(shí)都必須明確地指定out關(guān)鍵字。out參數(shù)聲明方式不要求變量傳遞給方法前進(jìn)行初始化,因?yàn)樗暮x只是用作輸出目的。但是,在方法返回前,必須對(duì)out參數(shù)進(jìn)行賦值。
四、數(shù)組型參數(shù):以params修飾符聲明。params關(guān)鍵字用來聲明可變長(zhǎng)度的參數(shù)列表。方法聲明中只能包含一個(gè)par-ams參數(shù)。
示例如下:
using System;
class Test
{
static void F(params int[] args)
{
Console.WriteLine(Array contains {0} elements:,args.Length);
foreach(int i in args);
Console.Write({0},i);
Console.WriteLine();
}
public static void Main()
{
int [] a = {1,2,3};
F(a);
F(10,20,30,40);
F();
}
}