在C#中,参数传递有两种方式:值传递和引用传递。
ref
或out
关键字。以下是一个简单的示例,演示了值传递和引用传递的区别:
using System;
class Program
{
static void Main()
{
int x = 10;
int y = 20;
Console.WriteLine("Before: x = {0}, y = {1}", x, y);
// 值传递
Add(x, y);
Console.WriteLine("After Add(x, y): x = {0}, y = {1}", x, y);
// 引用传递
AddRef(ref x, ref y);
Console.WriteLine("After AddRef(ref x, ref y): x = {0}, y = {1}", x, y);
}
static void Add(int a, int b)
{
a = a + b;
b = a - b;
}
static void AddRef(ref int a, ref int b)
{
a = a + b;
b = a - b;
}
}
输出结果:
Before: x = 10, y = 20
After Add(x, y): x = 10, y = 20
After AddRef(ref x, ref y): x = 30, y = 10
从输出结果可以看出,Add
方法中的参数传递是值传递,对参数的更改不会影响原始变量。而AddRef
方法中的参数传递是引用传递,对参数的更改会影响原始变量。
总之,C#中的值传递和引用传递是两种不同的参数传递方式,它们在不同的场景下有不同的应用。
领取专属 10元无门槛券
手把手带您无忧上云