C#方法的參數傳遞機制和C語言、C++語言不一樣的是,新增加了一種叫做輸出傳遞機制,其他兩種機制為值傳遞和引用傳遞機制。
總結如下:
C#方法的參數傳遞機制有以下三種方法:
- 值傳遞
- 引用傳遞
- 輸出傳遞
根據以上描述,我們來舉個例子說明這三種傳遞機制內幕。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Method
{
class Program
{
public static void ValueMethod(int i)//值傳遞
{
i++;
}
public static void RefereceMethod(ref int i)//參數傳遞
{
i++;
}
public static void OutMethod(out int i)//輸出傳遞
{
i = 0;
i++;
}
static void Main(string[] args)
{
int i = 0;
ValueMethod(i);
Console.WriteLine("i = " + i);
int j = 0;
RefereceMethod(ref j);//此處一定要添加ref傳入
Console.WriteLine("j = " +j);
int k = 0;
OutMethod(out k);
Console.WriteLine("k = " + k);
}
}
}
使用這三種傳遞機制的時候,要注意的問題都在注釋中給出。程序輸出的結果為:
i = 0
j = 1
k = 1
那麼,回顧以下,可以發現,在C#中,Main函數的局部變量如果使用值傳遞的辦法,那麼該參數被調用後,依然保持調用前的值。而輸出參數和引用參數都會改變被引用的變量值。
下面來講講可變長參數 的傳遞(params)先看代碼: