Code:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace RefOut
- {
- class Program
- {
- static void Main(string[] args)
- {
- int age = 10;
- incAge(age);
- Console.WriteLine("在Main函数中age的值是{0}",age);//不会打印20,却还是打印出10
- //因为通过incAge函数传参 --是“值传递”,相当于把age变量的值“复制了一份”而已
- //尽管incAge函数中age值发生改变,但不会对main函数中的age产生影响,因为这两个age根本不是同一个变量
- int score = 80;
- incScore(ref score);
- Console.WriteLine("在Main函数中score的值是{0}", score);//会打印出81
- //使用ref 关键字后,会传递变量的引用,当变量在外部发生改变时,Main函数中也会改变。
- int i;
- InitVal(out i);//使用out参数 为了将变量在InitVal函数中赋初始值
- Console.WriteLine("在Main函数中i的值为{0}",i);//打印出100
- Console.ReadKey();
- }
- static void incAge(int age)
- {
- age +=10; //age=age+10 =10+10
- Console.WriteLine("在incAge函数中age的值是{0}",age);//打印出 20
- }
- static void incScore(ref int score)
- {
- score++;
- Console.WriteLine("在incScore函数中score的值是{0}",score);//打印出81
- }
- static void InitVal(out int i)
- {
- i = 100;
- Console.WriteLine("在InitVal函数中i的值是{0}",i);//打印出100
- }
- }
- }
时间: 2024-09-24 22:17:23