C# 中的 ref 和 out 的意义和使用方法

时间:2022-05-14 01:16:49

原文C# 中的 ref 和 out 的意义和使用方法

  向方法传递一个实参时,对应的形参会用实参的一个副本来初始化,不管形参是值类型(例如 int),可空类型(int?),还是引用类型,这一点都是成立的。也就是随便在方法内部进行什么修改,都不会影响实参的值。例如,对于引用类型,,方法的改变,只是会改变引用的数据,但实参本身并没有变化,它仍然引用同一个对象。

        代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ref_out { class Program { static void Main(string[] args) { int i = 8; Console.WriteLine(i); DoIncrease(i); Console.WriteLine(i); } static void DoIncrease(int a) { a++; } } }

运行结果如下:

C# 中的 ref 和 out 的意义和使用方法

      若使用 ref 关键字,向形参应用的任何操作都同样应用于实参,因为形参和实参引用的是同一个对象。

  PS:实参和形参都必须附加 ref 关键字做为前缀。