C#中的Optional参数是什么?

默认情况下,方法的所有参数都是必需的。包含可选参数的方法不会在调用时强制传递参数。这意味着我们在不传递参数的情况下调用方法。

可选参数在函数定义中包含一个默认值。如果我们在调用时未传递可选的参数值,则使用默认值。

Thera是使参数可选的不同方法。

使用默认值

示例

using System;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         //未传递Value2,因为它是可选的
         OptionalMethodWithDefaultValue(5, 10);
         //传递Value2-
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1, int value2 = 5){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

输出结果

上面代码的输出是

Sum is 10
Sum is 15

在上面的示例中,方法OptionalMethodWithDefaultValue(int value1,int value2 = 5)value2的默认值为5。因此,如果在调用时没有为value2传递任何参数,它将采用默认值5,并且如果为value2传递了参数,则默认值被覆盖。

使用可选属性

示例

using System;
using System.Runtime.InteropServices;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         OptionalMethodWithDefaultValue(5, 10);
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1, [Optional]int value2){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

输出结果

上面代码的输出是

Sum is 5
Sum is 15

此处用于[Optional]属性用于指定可选参数。

另外,应注意,应始终在参数末尾指定可选参数。例如-OptionalMethodWithDefaultValue(int value1 = 5,int value2)将引发异常。

示例

using System;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         OptionalMethodWithDefaultValue(5, 10);
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1 = 5, int value2){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

错误-可选参数必须出现在所有必需参数之后。