सबसे अच्छे उपयोगों में से एक यह है कि यह डेटाबेस डेटाबेस के लिए काफी अच्छी तरह से मानचित्र करता है - इसे ध्यान में रखते हुए, आप इसका उपयोग करना चाहते हैं क्योंकि आप डेटाबेस में एक शून्य क्षेत्र करेंगे।
यह है कि, एक शून्य मान "अन्य" नहीं है - इसका अर्थ अज्ञात है, या इस समय अचूक है, या इस ऑब्जेक्ट/रिकॉर्ड में अन्य मान दिए गए हैं, यह किसी मान के लिए समझ में नहीं आता है ।
actualValue = userValue.HasValue ? userValue : defaultValue;
: - उपयोगकर्ता वरीयताओं अशक्त हो सकता है, और वास्तविक मान
actualValue = userValue ?? defaultValue;
??
हो जाएगा अशक्त सम्मिलित ऑपरेटर है - ऊपर निम्नलिखित के बराबर है अपनी स्थिति की तरह यह मान्य है लगता है
या
actualValue = (userValue != null) ? userValue : defaultValue;
प्रलोभन मैं लोगों को सबसे अधिक बार त्रिकोणीय राज्य ध्वज के रूप में उपयोग कर रहा है bool?
में देना देखें। यह समझ में नहीं आता है, क्योंकि सच/गलत/??? में कोई तीसरी संभावना नहीं है। आपके कोड को पढ़ने वाले अन्य लोगों को नीली पाठ, झूठा मतलब लाल पाठ, और शून्य का मतलब हरे रंग के पाठ का उपयोग करने के लिए सही है, यह जानने के लिए टिप्पणियों (सर्वोत्तम केस परिदृश्य) के माध्यम से खोदना होगा। इसके लिए enums का प्रयोग करें।
सबसे बड़ी जाल मैं लोगों में गिर जाते हैं देखते हैं कि - उसके अलावा, बस जाँच आदत हो अगर आपके nullables अशक्त कर रहे हैं - या तो तुलना शून्य पर के माध्यम से या .HasValue
का उपयोग कर अपने कोड लिखें द्वारा। जब यह उड़ाता है तो वापस आओ। यह रॉकेट विज्ञान नहीं है। –
@ हंस, मैं असहमत हूं: समस्याओं की उम्मीद करने की कोशिश करने की कोई बुरा बात नहीं है ... मुझे यकीन है कि उत्तर कई लोगों के लिए उपयोगी होंगे –
@ क्लोजर्स: मुझे एहसास है कि मुझे समुदाय में वापस आना होगा जब मेरे पास "असली" समस्या होती है, लेकिन चूंकि यह एक पूरी तरह से नई अवधारणा है, इसलिए मुझे नहीं लगता था कि यह मुझे इलाके को स्काउट करने में मदद करने के लिए चोट पहुंचाएगा। यदि यह अवधारणा बहुत कठिन नहीं है, तो हो सकता है कि मैं अधिक सतर्क रहूं - लेकिन यह उन क्षेत्रों में से एक हो सकता है जहां आप रूकी गलतियों को बांधने के लिए बाध्य हैं, और जहां उन्हें स्पॉट करना मुश्किल हो सकता है। मार्क बेयर्स का जवाब उन चीज़ों का एक उत्कृष्ट उदाहरण है जिन्हें मैं ढूंढ रहा था। –