- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Linq;
- usingSystem.Text;
- namespaceRefOut
- {
- classProgram
- {
- staticvoidMain(string[]args)
- {
- intage=10;
- incAge(age);
- Console.WriteLine("在Main函数中age的值是{0}",age);//不会打印20,却还是打印出10
- //因为通过incAge函数传参--是“值传递”,相当于把age变量的值“复制了一份”而已
- //尽管incAge函数中age值发生改变,但不会对main函数中的age产生影响,因为这两个age根本不是同一个变量
- intscore=80;
- incScore(refscore);
- Console.WriteLine("在Main函数中score的值是{0}",score);//会打印出81
- //使用ref关键字后,会传递变量的引用,当变量在外部发生改变时,Main函数中也会改变。
- inti;
- InitVal(outi);//使用out参数为了将变量在InitVal函数中赋初始值
- Console.WriteLine("在Main函数中i的值为{0}",i);//打印出100
- Console.ReadKey();
- }
- staticvoidincAge(intage)
- {
- age+=10;//age=age+10=10+10
- Console.WriteLine("在incAge函数中age的值是{0}",age);//打印出20
- }
- staticvoidincScore(refintscore)
- {
- score++;
- Console.WriteLine("在incScore函数中score的值是{0}",score);//打印出81
- }
- staticvoidInitVal(outinti)
- {
- i=100;
- Console.WriteLine("在InitVal函数中i的值是{0}",i);//打印出100
- }
- }
- }