C# 编写方法实现两个整型数据的互换,要求按引用(使用ref)传递方法参数,顺便帮我讲明白什么

2025-02-27 17:59:09
推荐回答(2个)
回答1:

回答主要是因为看到你的分数比较多。。。所以写了个实例给你。没多少好讲的,和C语言的指针类似。如果不加ref,函数参数传递的时候是把值赋值一份,函数内部的操作不会影响外部。加了ref就是和外部是一个值。

        static void Main(string[] args)
        {
            int a = 2;
            int b = 3;
            Console.WriteLine("a={0},b={1}", a, b);
            Swap(ref a, ref b);// 2, 3
            Console.WriteLine("a={0},b={1}", a, b);
            Console.ReadLine();// 3, 2
        }

        static void Swap(ref int a, ref int b)
        {
            int c = a;
            a = b;
            b = c;
        }

回答2:

要解释这个比较麻烦。首先你要懂值类型如int, double, 结构等与引用类型如string, 类, 数组等。本来int是值类型,一般情况是值传递,如果你在调用的方法中在参数前加了个ref,就指定了这个int类型的变量转为了引用传递。