在C#语言中,方法的参数传递有两种方式:值传递和引用传递。

  1. 值传递: 在值传递中,参数的值会被复制到一个新的变量中,方法内部对这个新变量的修改不会影响原始变量的值。

示例代码如下:

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
  1. 引用传递: 在引用传递中,参数的引用(内存地址)会被传递给方法,方法内部对该引用的修改会影响原始变量的值。

示例代码如下:

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关键字来实现引用传递。