โดยค่าเริ่มต้น พารามิเตอร์ทั้งหมดของเมธอดเป็นสิ่งจำเป็น เมธอดที่มีพารามิเตอร์ทางเลือกจะไม่บังคับให้ส่งผ่านอาร์กิวเมนต์ ณ เวลาที่โทร หมายความว่าเราเรียก method โดยไม่ผ่านอาร์กิวเมนต์
พารามิเตอร์ทางเลือกมีค่าเริ่มต้นในการกำหนดฟังก์ชัน หากเราไม่ส่งค่าอาร์กิวเมนต์ที่ไม่บังคับ ณ เวลาโทร ค่าดีฟอลต์จะถูกใช้
Thera เป็นวิธีการต่างๆ ในการสร้างพารามิเตอร์ที่ไม่บังคับ
การใช้ค่าเริ่มต้น
ตัวอย่าง
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 แล้ว ค่าเริ่มต้นจะถูกแทนที่
การใช้แอตทริบิวต์เสริม
ตัวอย่าง
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
ที่นี่สำหรับแอตทริบิวต์ [ไม่บังคับ] ใช้เพื่อระบุพารามิเตอร์ทางเลือก
นอกจากนี้ ควรสังเกตด้วยว่าควรระบุพารามิเตอร์ทางเลือกที่ส่วนท้ายของพารามิเตอร์เสมอ สำหรับอดีต − 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}"); } } }
ข้อผิดพลาด - พารามิเตอร์ทางเลือกต้องปรากฏหลังพารามิเตอร์ที่จำเป็นทั้งหมด