Skip to content
On this page

ref 关键字

  • ref 关键字用于将参数作为引用传递给方法。通过使用 ref 关键字,可以在方法中更改传递给它的变量的值,这也称为“按引用传递”。
  • ref 关键字用于传递参数的引用而不是值。它允许方法修改调用它的变量的值。使用 ref 关键字可以更改传递的参数,这个修改将反映到调用方。
csharp
using System;

class Program
{
    static void Main()
    {
        int a = 10;
        int b = 20;

        Console.WriteLine($"Before swap: a={a}, b={b}");
        Swap(ref a, ref b); // 通过使用 ref 关键字,可以在方法中更改传递给它的变量的值
        Console.WriteLine($"After swap: a={a}, b={b}");
    }

    /// <summary>
    /// 交换两个整数的值,接受两个 `int` 类型的参数,并使用 `ref` 关键字将它们作为引用传递
    /// </summary>
    static void Swap(ref int x, ref int y)
    {
        int temp = x; // 使用一个临时变量来交换两个变量的值
        x = y;
        y = temp;
    }
}

// Before swap: a=10, b=20
// After swap: a=20, b=10

由于我们使用了 ref 关键字,Swap 方法可以更改 ab 的值,因此在输出中我们可以看到它们的值已经被交换。

总结

ref 关键字可以让你在 C# 中传递参数的引用,从而让方法可以更改传递的变量的值。