ref(引用参数) 和 out(输出参数) 区别

class Program
{
    static void Main(string[] args)
    {
        int number = 50;
        Console.WriteLine("调用方法前 number 值:" + number);
        Function(number);
        Console.WriteLine("调用方法后 number 值:" + number); Console.WriteLine();

        number = 50;
        Console.WriteLine("调用方法前 number 值:" + number);
        RefFunction(ref number);
        Console.WriteLine("调用方法(ref)后 number 值:" + number); Console.WriteLine();

        number = 50;
        Console.WriteLine("调用方法前 number 值:" + number);
        OutFunction(out number);
        Console.WriteLine("调用方法(out)后 number 值:" + number); Console.WriteLine();
    }

    // 在方法内处理的num值,不会改变到外面的num值
    static void Function(int num)
    {
        num = num / 2;
    }

    // 在方法内处理的num值,会改变外面的num值
    static void RefFunction(ref int num)
    {
        num = num / 2;
    }

    // 无法将的参数值50传入,out参数值必须在方法中初始化,会改变外面的num值
    static void OutFunction(out int num)
    {
        num = 120;
        num = num / 2;
    }
}

运行:

其他:ref 就相当于C++里面的指针

原文地址:https://www.cnblogs.com/Allofus/p/14774691.html