इस अशक्त-कोलेसिंग ऑपरेटर के रूप में जाना जाता है और यह निम्नलिखित के रूप में कार्य करता है, मान a
एक नल पूर्णांक है और b
एक सामान्य पूर्णांक
है
b = a ?? 1;
b = (a != null ? (int)a : 1);
के बराबर है
जो
if(a != null)
b = (int)a;
else
b = 1;
इसलिए
public NameValueCollection Metadata
{
get { return metadata ?? (metadata = new NameValueCollection()); }
}
का विस्तार इस
public NameValueCollection Metadata
{
get
{
if(metadata == null)
return (metadata = new NameValueCollection());
else
return metadata;
}
}
जो एक एक लाइनर सिंगलटन पैटर्न के कुछ प्रकार है की तरह कुछ की तरह दिखना चाहिए के बराबर है, क्योंकि गेटर रिटर्न प्रत्येक बार अनुरोध किए जाने पर मेटाडेटा (प्रारंभिक नाम वैल्यू कोलेक्शन ऑब्जेक्ट), उस समय पहली बार उम्मीद है कि यह उस बिंदु पर शून्य है, इसलिए यह इसे प्रारंभ करता है और फिर इसे वापस कर देता है। यह विषय बंद है लेकिन ध्यान दें कि सिंगलटन पैटर्न के लिए यह दृष्टिकोण थ्रेड-सुरक्षित नहीं है।
स्रोत
2010-08-07 16:03:45
downvote क्योंकि कोई स्पष्टीकरण पर
पढ़ें विस्तृत चर्चा। – problemofficer