四大天王

C#中有四个(其实是五个,四大天王有五个不是常识吗?)常用的参数修饰符,本文对它们进行一个简单的介绍。
这三个修饰符分别是:

  • ref
  • out
  • in (ref readonly)
  • params

虽说大家平常都把他们四个排在一起,但其实最后一个和前三者关系还是差得有点大的,因此我们分开来讲。

ref、out与in

ref

众所周知,C#中类型有分为值类型和引用类型。如果把值类型(比如数组)传入一个方法,实际传入的是对于这个数组的引用。所以当这个方法对传入的数组进行了操作后,当我们在方法外部再读取这个数组,得到的会是被方法处理过的结果。这个特性在一些情况下还是挺实用的,如果值类型也能这样操作也不错,因此就有了ref修饰符,它的主要作用是把参数的引用传入方法,而不是参数的值。当然,对于引用类型来说,这个修饰符并没有什么作用。
使用的话请看下面这个示例:

class Program:
{
 static void add1(ref int x):
    {
        x++;
    }
 static void Main( string[] args )
     {
         int y = 2;
         add1(ref y)
         Console.WriteLine($"After Call Method, y: {y}") 
     }
}