यह नल-कोलेसिंग ऑपरेटर है। नल-कोलेसिंग ऑपरेटर ?? अपने बाएं हाथ के ऑपरेंड का मान लौटाता है यदि यह null नहीं है; अन्यथा, यह दाएं हाथ के ऑपरेंड का मूल्यांकन करता है और उसका परिणाम लौटाता है। ?? ऑपरेटर अपने दाएं हाथ के ऑपरेंड का मूल्यांकन नहीं करता यदि बायां हाथ का ऑपरेंड नॉन-नल मूल्यांकन करता है।
एक नल करने योग्य प्रकार एक मान को दर्शा सकता है जो अपरिभाषित हो सकता है या प्रकार के डोमेन से हो सकता है। हम ?? ऑपरेटर का उपयोग तब उपयुक्त मान लौटाने के लिए कर सकते हैं जब बायां ऑपरेंड नल करने योग्य प्रकार का हो। यदि हम ?? ऑपरेटर का उपयोग किए बिना एक नल करने योग्य मान प्रकार को नॉन-नल करने योग्य मान प्रकार में असाइन करने का प्रयास करते हैं, तो हमें कंपाइल-टाइम त्रुटि मिलेगी और यदि हम जबरदस्ती कास्ट करते हैं, तो InvalidOperationException अपवाद फेंका जाएगा।
नल-कोलेसिंग ऑपरेटर (??) के निम्नलिखित लाभ हैं:
- इसका उपयोग नल करने योग्य आइटम (मान प्रकार और संदर्भ प्रकार दोनों के लिए) के लिए डिफ़ॉल्ट मान परिभाषित करने के लिए किया जाता है।
- यह रनटाइम InvalidOperationException अपवाद को रोकता है।
- यह कई अनावश्यक "if" शर्तों को हटाने में मदद करता है।
- यह संदर्भ प्रकार और मान प्रकार दोनों के लिए काम करता है।
- कोड सुव्यवस्थित और पठनीय हो जाता है।
उदाहरण
using System;
namespace MyApplication{
class Program{
static void Main(string[] args){
int? value1 = null;
int value2 = value1 ?? 99;
Console.WriteLine("Value2: " + value2);
string testString = "Null Coalescing";
string resultString = testString ?? "Original string is null";
Console.WriteLine("The value of result message is: " + resultString);
}
}
}
आउटपुट
उपरोक्त उदाहरण का आउटपुट निम्नानुसार है।
Value2: 99 The value of result message is: Null Coalescing