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