浏览 53
扫码
在C#语言中,方法的参数传递有两种方式:值传递和引用传递。
- 值传递: 在值传递中,参数的值会被复制到一个新的变量中,方法内部对这个新变量的修改不会影响原始变量的值。
示例代码如下:
class Program
{
static void Main()
{
int num = 10;
Console.WriteLine("Before Method: " + num);
Increment(num);
Console.WriteLine("After Method: " + num);
}
static void Increment(int value)
{
value++;
Console.WriteLine("Inside Method: " + value);
}
}
输出结果为:
Before Method: 10
Inside Method: 11
After Method: 10
- 引用传递: 在引用传递中,参数的引用(内存地址)会被传递给方法,方法内部对该引用的修改会影响原始变量的值。
示例代码如下:
class Program
{
static void Main()
{
int num = 10;
Console.WriteLine("Before Method: " + num);
Increment(ref num);
Console.WriteLine("After Method: " + num);
}
static void Increment(ref int value)
{
value++;
Console.WriteLine("Inside Method: " + value);
}
}
输出结果为:
Before Method: 10
Inside Method: 11
After Method: 11
在调用方法时,如果想要使用引用传递,需要在参数前加上ref
关键字。如果不加ref
关键字,将默认使用值传递。
需要注意的是,C#中的类和接口默认使用引用传递,而结构体(struct)默认使用值传递。如果想在方法内修改结构体的值并影响原始变量,可以使用ref
关键字来实现引用传递。