में वैकल्पिक पैरामीटर के रूप में उपयोग नहीं किया जा सकता है, मैं एक विधि लिख रहा था जो DateTime
मान को इसके पैरामीटर के रूप में लेता है। मैंने फैसला किया कि यह वैकल्पिक पैरामीटर है इसलिए मैं आगे बढ़ गया और डिफ़ॉल्ट रूप से DateTime.MinValue
बनाने की कोशिश की। 'TestVar' के लिएक्यों DateTime.MinValue को C#
डिफ़ॉल्ट पैरामीटर मान एक संकलन समय निरंतर होना चाहिए:
private void test(string something, DateTime testVar = DateTime.MinValue) { }
हालांकि यह एक त्रुटि है कि देता है।
इस कोड का उपयोग करना ठीक काम करता है।
private void test(string something, DateTime testVar = new DateTime()) {
}
मुझे DateTime.MinValue instead of new DateTime() का उपयोग करने के लिए सलाह दी गई थी क्योंकि यह स्वयं-दस्तावेज़ है। चूंकि new DateTime()
मूल रूप से वही बात है जो DateTime.MinValue
का उपयोग नहीं किया जा सकता है? अगर मैं new DateTime()
के साथ छोड़ देता हूं तो क्या कोई संभावित समस्या होगी?
public static readonly DateTime MinValue
कौन सा const
के समान नहीं है: के रूप में
वैकल्पिक दृष्टिकोण: डिफ़ॉल्ट मान के लिए डेटटाइम होने पर यह कब समझता है। MinValue? मुझे एहसास है कि यह डेटटाइम के लिए * डिफ़ॉल्ट * है, लेकिन क्या यह वास्तव में दी गई विधि के लिए उपयुक्त मूल्य है? या हो सकता है कि यदि मूल्य प्रदान नहीं किया गया है, तो क्या यह केवल शून्य नहीं होना चाहिए? –
मैं एसक्यूएल से मूल्य प्राप्त करते समय 'DateTime.MinValue' का उपयोग कर रहा हूं जो 'डेटटाइम' के रूप में शून्य था, शून्य नहीं है। 'डेटटाइम?' है। – MadBoy
वह बिंदु है जो मैं वास्तव में प्राप्त कर रहा हूं, और यह यहां अधिक लागू है। यदि आप किसी ऐसे डेटाबेस में मैपिंग कर रहे हैं जो निरर्थक तिथियों का समर्थन करता है, तो यह आपके कोड में निरर्थक तिथियों का उपयोग करने के लिए उचित लगता है, और उसके बाद तिथियों के लिए कोई मूल्य नहीं है, क्योंकि वे आपके डेटाबेस में हैं। केवल एक विचार। –