C# 中方法有哪些不同类型的参数?

csharpserver side programmingprogramming更新于 2025/9/9 10:22:17

C# 中的方法通常是程序中的代码块或语句,它允许用户重用相同的代码,从而避免过度占用内存,节省时间,更重要的是,它提高了代码的可读性。

在某些情况下,用户可能想要执行某个方法,但有时该方法需要一些有价值的输入才能执行并完成其任务。这些输入值称为参数。

参数可以通过以下方式传递给方法 −

  • 值参数

  • 引用参数

  • 输出参数

值参数

值参数将参数的实际值复制到函数的形式参数中。当简单变量作为参数传递给任何方法时,它都是以值的形式传递的。这意味着作为参数传递的变量所包含的值会被复制到方法的变量中。如果在方法内部更改或修改了这些值,则更改不会反映在实际传递的变量中。大多数原始数据类型(例如整数、双精度型、布尔型等)都是以值传递的。

示例

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"调用方法前的值。x = {x}, y = {y}");
         ValueParamter(x, y);
         Console.WriteLine($"调用方法后的值。x = {x}, y = {y}");
      }
      public static void ValueParamter(int x, int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"x and y 之和 = {z}");
      }
   }
}

输出

上述代码的输出如下 &mius;

调用方法前的值。x = 5, y = 5
x 与 y 之和 = 20
调用方法后的值。 x = 5, y = 5

引用参数

引用参数将对参数内存位置的引用复制到形式参数中。通常,所有对象都通过引用作为参数传递给方法。该方法对传入参数的变量的引用进行操作,而不是对其值进行操作。这会导致在被调用函数中修改变量时,调用函数中的变量也会被修改。这意味着对参数的更改会影响实际参数。

示例

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"调用方法前的值。x = {x}, y = {y}");
         RefParamter(ref x, ref y);
         Console.WriteLine($"调用方法后的值。x = {x}, y = {y}");
      }
      public static void RefParamter(ref int x, ref int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"x and y 之和 = {z}");
      }
   }
}

输出

上述代码的输出如下 −

调用方法前的值。x = 5, y = 5
x 与 y 之和 = 20
调用方法后的值。 x = 10, y = 10

输出参数

输出参数有助于返回多个值。return 语句只能用于从函数返回一个值。但是,使用输出参数可以从函数返回两个值。输出参数提供的变量无需赋值。当您需要通过参数从方法返回值,而无需为参数赋初始值时,输出参数特别有用。输出参数类似于引用参数,不同之处在于它们将数据传输出方法而不是传入方法。

示例

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int result;
         OutParamter(out result);
         Console.WriteLine($"Result: {result}");
      }
      public static void OutParamter(out int result){
         int x = 10, y = 10;
         result = x + y;
      }
   }
}

输出

The output of the above code is as follows:
Result: 20

相关文章