Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

พารามิเตอร์ทางเลือกใน C # คืออะไร?


โดยค่าเริ่มต้น พารามิเตอร์ทั้งหมดของเมธอดเป็นสิ่งจำเป็น เมธอดที่มีพารามิเตอร์ทางเลือกจะไม่บังคับให้ส่งผ่านอาร์กิวเมนต์ ณ เวลาที่โทร หมายความว่าเราเรียก 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}");
      }
   }
}

ข้อผิดพลาด - พารามิเตอร์ทางเลือกต้องปรากฏหลังพารามิเตอร์ที่จำเป็นทั้งหมด