2012-06-22 4 views
5

मैं इस के समान एक निर्माता विधि है:मैं डेटटाइम के मिलीसेकंड क्यों खो देता हूं जब यह किसी विधि को पास किया जाता है जो शून्य दिनांक दिनांक लेता है?

public class Foo 
{ 
public Foo (DateTime? startFrom) 
     { 
      _startFrom = startFrom; 
     } 
} 

और मैं इस तरह इस निर्माता विधि बोल रहा हूँ:

var context = new Foo(new DateTime(2012, 7, 15, 11, 2, 10, 2)); // 2 miliseconds 

लेकिन जब मैंने उसे डिबग, मुझे लगता है कि 002 मिलीसेकेंड की तैयारी में हैं 000 जब डिफॉल्ट कन्स्ट्रक्टर को पास किया गया जो एक शून्य दिनांक दिनांक पैरामीटर है।

क्या यह सामान्य है कि मैं डेटटाइम के मिलीसेकंड खो देता हूं जब मैं इसे किसी विधि के पैरामीटर के रूप में पास करता हूं जो शून्य दिनांक दिनांक लेता है?

+0

आप डेटटाइम की सामग्री कैसे देख रहे हैं? डीबगर दिनांकटाइम का उपयोग करता है। टॉस्ट्रिंग() जो मिलीसेकंड प्रदर्शित नहीं करता है। यदि आप डीबगर में ऑब्जेक्ट का विस्तार करते हैं, तो आप मिलीसेकंड देखेंगे। –

उत्तर

4

नहीं, यह सामान्य नहीं है - और मुझे दृढ़ता से संदेह है कि यह एक निदान समस्या है।

जब आप कोड के माध्यम से डीबग करते हैं, तो मुझे संदेह है कि आप एक घड़ी विंडो का उपयोग कर रहे हैं जो कि इसकी स्ट्रिंग प्रस्तुति में मिलीसेकंड प्रदर्शित नहीं होता है। चर स्वयं का विस्तार करें और मुझे यकीन है कि आप देखेंगे कि मिलीसेकंड घटक संरक्षित है।

(अगर वह नहीं बात है, एक छोटा लेकिन पूरा कार्यक्रम है जो समस्या को दर्शाता है, बल्कि सिर्फ टुकड़ा आप दिखाया है की तुलना में प्रदान करें।)

0

कोई यह नहीं है और यह मामला नहीं है, डीबग विंडो मिलीसेकंड नहीं दिखाती है, बस इतना ही है।

एक नया वीएस -2010 समाधान खोल दिया और आप जो भी कहते हैं उसे पुन: पेश नहीं कर सकते हैं। मिलीसेकंद भाग को देखते समय, मूल्य 2 है!

1

मैंने अभी कोशिश की और मुझे मिलीसेकंड मिल गया। आप यह कैसे सत्यापित कर रहे हैं?

मैं डिबग मोड में यह भाग गया और निरीक्षण अपने context._startFrom.Millisecond इसके बारे में 2.

आप पर toString() उत्पादन निर्भर कर रहे हैं मूल्य है? यह डिफ़ॉल्ट रूप से मिलीसेकंड दिखाता नहीं है।

संबंधित मुद्दे