2011-07-14 10 views
7

मैं शायद बहुत मेहनत कर रहा हूं, लेकिन क्या कोई मुझे निम्नलिखित को समझा सकता है, Immediate विंडो से लिया गया?डेटटाइम गणना के साथ अजीब समस्या

(int)DateTime.Now.Date.DayOfWeek = 4

और

(int)DayOfWeek.Sunday = 0

और

(int)DateTime.Now.Date.DayOfWeek - (int)DayOfWeek.Sunday = 4

लेकिन
(int)DayOfWeek.Sunday - (int)DateTime.Now.Date.DayOfWeek =

expression` का मूल्यांकन नहीं किया जा सका

पढ़ने के लिए धन्यवाद।

संपादित करें:

इसके तत्काल खिड़की है कि मुझे इस अजीब परिणाम दे रही है, नियमित रूप से नहीं कोड।

स्क्रीनशॉट: http://ploader.net/files/0c2556df475b3075634d7fd2b0575794.PNG

EDIT2:

समुदाय अपने VS2010 में एक बग में सोचने के लिए लग रहे हैं। मुझे आश्चर्य है कि अगर @EricLippert या @JonSkeet इस बात की पुष्टि करने के लिए एक मिनट बचा सकता है या, यदि नहीं, तो इस व्यवहार के बारे में स्पष्टीकरण दें?

+0

यह मेरे लिए ठीक काम करता है। क्या आप अपना पूरा कोड पोस्ट कर सकते हैं? शायद यहां कुछ और चल रहा है? – Jay

+0

इसका कोड नहीं है, केवल तत्काल विंडो में विज्ञापन अभिव्यक्तियों का आउटपुट। – 5arx

+1

@Jay मेरा अनुमान है कि वह डिबगिंग करते समय तत्काल विंडो के बारे में बात कर रहा है - मैंने कोशिश की है और यह काम नहीं करता है, लेकिन मुझे नहीं पता कि क्यों। – Justin

उत्तर

5

यह स्थिर 0 और एक गैर-शाब्दिक मूल्य के लिए विशिष्ट दिखता है। निम्नलिखित काम करता है ठीक:

int zero = 0; 
zero - (int)DateTime.Now.Date.DayOfWeek 
-4 

जबकि निम्नलिखित में विफल रहता है:

int four = 4; 
0 - four 
Could not evaluate expression 

अद्यतन: मैं एक ऐसी ही बग रिपोर्ट नहीं पा सके, तो मैं बनाया एक: https://connect.microsoft.com/VisualStudio/feedback/details/679501/integer-literal-0-integer-variable-could-not-evaluate-expression-immediate-window

अद्यतन # 2: माइक्रोसॉफ्ट इस मुद्दे को पुन: उत्पन्न करने में सक्षम है और इसे "विल फिक्स" के रूप में हल कर चुका है, जिसका अर्थ है कि विजुअल स्टूडियो के अगले संस्करण की उम्मीद है, लेकिन वीएस -2010 के लिए नहीं।

+0

मैं इसके साथ सहमत हूं। निश्चित रूप से यह एक बग है? क्या मुझे विजुअल स्टूडियो प्रोजेक्ट टीम पर अंडेहेड के ध्यान में लाने के लिए कुछ प्रकार का पुरस्कार मिलता है? ;-) – 5arx

+1

शायद नहीं, लेकिन अगर एरिक Lippert इस पढ़ता है, तो आप इसे अगली रिलीज में तय हो सकता है। –

+0

खैर मुझे आशा है कि @EricLippert पढ़ रहा है। – 5arx

3

मुझे नहीं पता, यह मेरे लिए एक बग जैसा दिखता है।

// This doesn't work 
0 - (int)DateTime.Now.Date.DayOfWeek 

// But loads of similar variations do: 
1 - (int)DateTime.Now.Date.DayOfWeek 
-1 - (int)DateTime.Now.Date.DayOfWeek 
a - (int)DateTime.Now.Date.DayOfWeek 
0 - (int)DayOfWeek.Thursday 

किसी भी मामले में संकलित कोड में सबकुछ अपेक्षित व्यवहार करता है।

+0

इसके लिए भगवान का शुक्र है। मैंने सोचा कि मैं पागल हो रहा था। – 5arx

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