निम्नलिखित विशिष्ट परिदृश्य पर विचार करें:
if(myObject == null) {
myObject = new myClass();
}
मैं सोच रहा हूं कि अशक्त-सहवर्ती ऑपरेटर का उपयोग करके निम्नलिखित प्रतिस्थापन के बारे में क्या सोचा गया है:
myObject = myObject ?? new myClass();
मुझे यकीन नहीं है कि मुझे दूसरे फॉर्म का उपयोग करना चाहिए या नहीं। यह एक अच्छा शॉर्टहैंड की तरह लगता है, लेकिन myObject = myObject
शुरुआत में निर्माण ऐसा लगता है जैसे यह कोड-गंध का एक सा हो सकता है।
क्या यह एक उचित बात है, या क्या कोई बेहतर शॉर्टहैंड है जो मुझे याद आ रही है? या हो सकता है, "यह तीन लाइनें हैं, इसे खत्म कर दो!"
संपादित करें: जैसा कि उल्लेख किया गया है, शायद यह एक विशिष्ट परिदृश्य कह रहा है एक अतिरंजना का कुछ है। मुझे आमतौर पर लगता है कि मैं इस स्थिति का सामना कर रहा हूं जब मैं एक डेटाबेस से एक इकाई प्राप्त कर रहा हूं जिसमें एक बच्चा संदर्भ प्रकार की संपत्ति है जो अभी तक पॉपुलर नहीं हो सकती है:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
एक public static readonly
सदस्य प्रदान करना चाहिए Empty
। String.Empty
MSDN पर देखें ।
??=
ऑपरेटर नहीं है?