C# 中的可选参数是什么?
默认情况下,方法的所有参数都是必需的。包含可选参数的方法在调用时不会强制传递参数。这意味着我们可以不传递参数就调用方法。
可选参数在函数定义中包含一个默认值。如果我们在调用时没有传递可选参数的值,则使用默认值。
有不同的方法可以使参数成为可选的。
使用默认值
示例
using System; namespace DemoApplication{ class Demo{ static void Main(string[] args){ OptionalMethodWithDefaultValue(5); //Value2 is not passed as it is optional OptionalMethodWithDefaultValue(5, 10); //Value2 is passed 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 传递了参数,则默认值将被覆盖。
使用 Optional 属性
示例
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}"); } } }
错误 - 可选参数必须出现在所有必需参数之后。
广告