निम्नलिखित विशिष्ट परिदृश्य पर विचार करें:के साथ नल ऑब्जेक्ट्स Instantiating ?? ऑपरेटर
if(anObject == null)
{
anObject = new AClass();
}
मैं सोच रहा हूँ क्या उपयोग करके निम्न प्रतिस्थापन के बारे में सोचा है ?? ऑपरेटर:
anObject = anObject ?? new AClass();
मुझे यकीन नहीं है कि मुझे दूसरे फॉर्म का उपयोग करना चाहिए या नहीं। यह एक अच्छा शॉर्टेंड जैसा लगता है, लेकिन शुरुआत में anObject = anObject निर्माण लगता है जैसे यह कोड-गंध का थोड़ा सा हो सकता है।
क्या यह करने के लिए एक उचित बात है, या क्या कोई बेहतर शॉर्टेंड है कि मुझे याद आ रही है? या शायद, "यह तीन लाइनें है, इसे खत्म करो!"
दोनों आम हैं। –
यदि यह कोड गंध होगा, तो इसे पहले स्थान पर पेश नहीं किया जाएगा। दूसरा रूप अधिक संक्षिप्त है और इसे प्राथमिकता दी जानी चाहिए। –
@JeroenVannevel: सवाल यह नहीं है कि '??' ऑपरेटर कोड-गंध है, लेकिन क्या इसका एक अभिव्यक्ति में उपयोग किया जाता है जिसे उसके ऑपरेंड में से एक के रूप में पारित किया गया है, कोड-गंध है। –