हर कोई कोलेसे ऑपरेटर समेत कम से कम दो सामान्य सी # मुहावरे जानता है:आम सी # मुहावरे सहित सहवास ?? ऑपरेटर
एक सिंगलटन एक:
return _staticField = _staticField ?? new SingletonConstructor();
और एक श्रृंखला एक:
notNullableResult = nullable1 ?? nullable2 ?? nullable3 ?? default(someType);
यह पढ़ने योग्य, सुसंगत, उपयोग करने योग्य और पहचानने योग्य है कोड।
लेकिन, दुर्भाग्यवश, यह सब कुछ है। कभी-कभी इसे विस्तार या बदलने की आवश्यकता होगी। कभी-कभी जब मैं एक विशेष मामला देखता हूं तो मैं उनका उपयोग करता हूं - और हमेशा मैं इसका उपयोग करने में संकोच करता हूं क्योंकि मुझे नहीं पता कि कोई अन्य प्रोग्रामर वास्तव में इसे आसान पढ़ेगा या नहीं।
क्या आप किसी और को जानते हैं? मुझे अधिक विशिष्ट उपयोग करना अच्छा लगेगा: उदा। एएसपीनेट, ईएफ, LINQ, कुछ भी - जहां coalesce केवल स्वीकार्य लेकिन उल्लेखनीय नहीं है।
मुझे ऐसा लगता है कि रिक्त कोलेसिंग ऑपरेटर के सभी उपयोगों अपने में से केवल विशेष मामलों रहे हैं " श्रृंखला एक "। –
अभी भी, सभी मामले कम या ज्यादा विशेष या सामान्य हैं। मेरे लिए, प्रोग्रामिंग की कला अंतर को संतुलित और महसूस करना है। कोलेसस 'if' कथन का एक विशेष मामला है, है ना? और स्विच - केस एक विशेष है, तो क्या - उन्हें हटाने के लिए? – rudnev
ऐसा नहीं है कि आप आलसी-तत्काल सिंगलटन को कैसे कार्यान्वित करते हैं। भले ही आपने इस प्रश्न में अल्पसंख्यक के लिए 'लॉक' ब्लॉक छोड़ा हो, फिर भी यह केवल कोड को खराब करने में काम करता है। – Aaronaught