डिफ़ॉल्ट रूप से, किसी विधि के सभी पैरामीटर्स आवश्यक होते हैं। एक विधि जिसमें वैकल्पिक पैरामीटर्स होते हैं, कॉलिंग समय पर तर्क पास करने के लिए बाध्य नहीं करती। इसका मतलब है कि हम बिना तर्क पास किए विधि को कॉल कर सकते हैं।
वैकल्पिक पैरामीटर में फ़ंक्शन परिभाषा में एक डिफ़ॉल्ट मान होता है। यदि हम कॉलिंग समय पर वैकल्पिक तर्क मान पास नहीं करते हैं, तो डिफ़ॉल्ट मान उपयोग किया जाता है।
पैरामीटर को वैकल्पिक बनाने के अलग-अलग तरीके हैं।
डिफ़ॉल्ट मान का उपयोग करके
उदाहरण
using System;
namespace DemoApplication{
class Demo{
static void Main(string[] args){
OptionalMethodWithDefaultValue(5);
// Value2 पास नहीं किया गया क्योंकि यह वैकल्पिक है
OptionalMethodWithDefaultValue(5, 10);
// Value2 पास किया गया
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}");
}
}
}
त्रुटि - वैकल्पिक पैरामीटर्स सभी आवश्यक पैरामीटर्स के बाद आने चाहिए।