ref可以修改变量作为参数调用的值,但必须要初始化,不能在调用的函数中初始化
static void Main(string[] args) { int myNumber = 5; Console.WriteLine("myNumber = {0}.", myNumber); ShowDouble(ref myNumber); Console.WriteLine("myNumber = {0}.", myNumber); Console.ReadKey(); } static void ShowDouble(ref int var) { var *=2 ; Console.WriteLine("val doubled = {0}.", var); return; }
输出:
mynumber = 5; val doubled = 10; myNumber = 10.
非法:
const int myNumber = 5;
Console.WriteLine("myNumber = {0}.", myNumber);
ShowDouble(ref myNumber);
Console.WriteLine("myNumber = {0}.", myNumber);
Console.ReadKey();
非法:
int myNumber;
ShowDouble(ref myNumber);
Console.WriteLine("myNumber = {0}.", myNumber);
Console.ReadKey();