默认情况下,方法的所有参数都是必需的。包含可选参数的方法不会在调用时强制传递参数。这意味着我们在不传递参数的情况下调用方法。
可选参数在函数定义中包含一个默认值。如果我们在调用时未传递可选的参数值,则使用默认值。
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}"); } } }
错误-可选参数必须出现在所有必需参数之后。