值傳遞,引用傳遞
值傳遞:是對(duì)所引用參數(shù)進(jìn)行一次副本拷貝,對(duì)參數(shù)的修改只是對(duì)副本的修改,函數(shù)調(diào)用結(jié)束,副本丟棄,原來的變量不變
引用傳遞:參數(shù)被傳遞到函數(shù)時(shí),不復(fù)制副本,而是直接將參數(shù)自身傳入到函數(shù),函數(shù)內(nèi)對(duì)參數(shù)的任何改變都將反映到參數(shù)上。
使用ref修飾符表明該參數(shù)是通過引用傳遞的。
TransPara(a,ref b)//a為值傳遞,b為引用傳遞
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ParametersRefAndValue
{
class Program
{
static void Main(string[] args)
{
int val = 23, refVal = 56;
//輸出調(diào)用前的參數(shù)值
System.Console.WriteLine("Before call TransPara: val={0},refVal={1}",val,refVal);
TransPara(val,ref refVal);//調(diào)用函數(shù),并且輸出調(diào)用中的參數(shù)值
//輸出調(diào)用后的參數(shù)值
System.Console.WriteLine("After call TransPara: val={0},refVal={1}", val, refVal);
System.Console.ReadLine();
}
static void TransPara(int val, ref int refVal) {
val++;
refVal--;
System.Console.WriteLine("During call TransPara: val={0},refVal={0}", val,refVal);
}
}
}
結(jié)果如下:
Before call TransPara: val=23,refVal=56
During call TransPara: val=24,refVal=24
After call TransPara: val=23,refVal=55
posted on 2009-10-25 16:58
期待明天 閱讀(422)
評(píng)論(0) 編輯 收藏 所屬分類:
CSharp