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


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

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

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

  • 值参数

  • 引用参数

  • 输出参数

值参数

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

示例

 在线演示

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"Value before calling the method. x = {x}, y = {y}");
         ValueParamter(x, y);
         Console.WriteLine($"Value after calling the method. x = {x}, y = {y}");
      }
      public static void ValueParamter(int x, int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"Sum of x and y = {z}");
      }
   }
}

输出

上述代码的输出如下:

Value before calling the method. x = 5, y = 5
Sum of x and y = 20
Value after calling the method. x = 5, y = 5

引用参数

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

示例

 在线演示

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"Value before calling the method. x = {x}, y = {y}");
         RefParamter(ref x, ref y);
         Console.WriteLine($"Value after calling the method. x = {x}, y = {y}");
      }
      public static void RefParamter(ref int x, ref int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"Sum of x and y = {z}");
      }
   }
}

输出

上述代码的输出如下:

Value before calling the method. x = 5, y = 5
Sum of x and y = 20
Value after calling the method. 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

更新于:2020年8月4日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告