मुझे DateTime
मान की आवश्यकता है यदि उसके पास मूल्य है या नहीं।डिफ़ॉल्ट डेटटाइम मान के लिए कैसे जांचें?
if (dateTime == default(DateTime))
या
if (dateTime == DateTime.MinValue)
या एक नल DateTime?
if (nullableDateTime.HasValue)
का उपयोग कर व्यक्तिगत तौर पर मैं, तीसरे संस्करण पसंद करेंगे अपने बहुत अच्छी पठनीय के बाद से:
मैं कई विकल्प हैं। लेकिन हमारे डेटाबेस में हमारे पास कुछ डेटाटाइम कॉलम हैं जिन्हें शून्य के रूप में परिभाषित नहीं किया गया है। तो कुछ मामलों में मुझे पहले दो विकल्पों के साथ जाना होगा।
मैंने कहीं पढ़ा है कि जेनिक्स के साथ काम करते समय default
कीवर्ड का उपयोग किया जाना चाहिए, लेकिन क्या इस मामले में यह और अधिक पठनीय नहीं है? दूसरे विकल्प का उपयोग करते समय मुझे यह जानना होगा कि एक नए और खाली डेटटाइम उदाहरण का डिफ़ॉल्ट मान डेटटाइम है। MinValue जिसमें मेरे लिए कार्यान्वयन विवरण की गंध है।
तो "सर्वोत्तम अभ्यास" का उपयोग करने के लिए मुझे किस विकल्प का उपयोग करना चाहिए?
// Or private, or maybe even public
internal static readonly DateTime MagicValueForNullDateTimeInNonNullableColumns
= DateTime.MinValue;
ठीक है, तो मैं नाम थोड़ा कम शब्दों वाले बनाना चाहते हैं, लेकिन आपको मिल मैं क्या मतलब है:
कोड ब्लॉक के बाद आपकी पहली वाक्य में, क्या आपका मतलब "दूसरा संस्करण" है, या आपका मतलब "तीसरा संस्करण" है? –
इसे अपडेट किया गया;) मेरा मतलब तीसरा संस्करण था, क्योंकि संपत्ति स्पष्ट रूप से बताती है कि मैं क्या जांचना चाहता हूं: यदि चर के पास – dasheddot
है और यह तब होता है जब वास्तव में जो कुछ भी वास्तव में होता है उस मिनट की तारीख में होता है? – Servy