传递参数(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# 语法和用法的权威资料。