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

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

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;
    }
}

posted @ 2021-05-16 20:02  kueizheng  阅读(136)  评论(0编辑  收藏  举报