C# ref与out

参数传递分为:值传递和引用传递。

默认的参数传递是值传递,out和ref修饰的参数传递是引用传递,但out修饰的参数必须在函数内部进行初始化。

        public static void F(int a)
        { 
            a++;
        }

        public static void Fout(out int a)
        {
            a = 100; //必须初始化,否则编译报错
            a++;
        }

        public static void Fref(ref int a)
        {
            a++;
        }

        static void Main(string[] args)
        {
            int a = 0;
            F(a); //默认传参
            Console.WriteLine(a);
            Fout(out a); //out传参
            Console.WriteLine(a);
            Fref(ref a); //ref传参
Console.WriteLine(a);
}

输出结果为:0 101 102