传递参数(C# 编程指南)

在 C# 中,既可以通过值也可以通过引用传递参数。 在调用环境中通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。 若要通过引用传递参数,请使用 ref 或 out 关键字。 为简单起见,本主题的示例中只使用了 ref 关键字。 有关 ref 和 out 之间区别的更多信息,请参见 ref(C# 参考)out(C# 参考)使用 ref 和 out 传递数组(C# 编程指南)

下面的示例阐释值与引用参数之间的区别:

class Program
{
    static void Main(string[] args)
    {
        int arg;

        // Passing by value.
        // The value of arg in Main is not changed.
        arg = 4;
        squareVal(arg);
        Console.WriteLine(arg);
        // Output: 4

        // Passing by reference.
        // The value of arg in Main is changed.
        arg = 4;
        squareRef(ref arg);
        Console.WriteLine(arg);
        // Output: 16 
    }

    static void squareVal(int valParameter)
    {
        valParameter *= valParameter;
    }

    // Passing by reference
    static void squareRef(ref int refParameter)
    {
        refParameter *= refParameter;
    }
}

有关更多信息,请参见下列主题:

C# 语言规范

有关更多信息,请参见 C# 语言规范。该语言规范是 C# 语法和用法的权威资料。

请参见

参考

方法(C# 编程指南)

概念

C# 编程指南