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}");
}
}
}错误 - 可选参数必须出现在所有必需参数之后。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP