2012-08-22 12 views
6

मैं एक दशमलव प्रकार असाइन करने के लिए एक टर्नरी का उपयोग करने की कोशिश कर रहा हूं। यह मेरे लिए काम नहीं कर रहा है। क्या मैं पागल हो रहा हूँ?दशमलव टर्नरी काम नहीं कर रहा

यहां मेरे डीबग का एक स्क्रीन शॉट है। मैं कदम से पहले सबकुछ का मूल्य देख सकता हूं। enter image description here

और यहां कदम उठाने के बाद यह मान है। यह व्यवहार्य विकल्पों में से एक भी नहीं है (यानी 1 या 2000)। enter image description here

क्या दशमलव के साथ कुछ अजीब सीमा है जिसे मैं नहीं जानता? जब मैं इसे पूरी तरह से तोड़ देता हूं अगर/और तार्किक प्रतिनिधित्व यह ठीक काम करता है। मुझे लगता है कि एकमात्र चीज यह है कि मैंने हाल ही में .NET Framework 4.5 स्थापित किया था।

अद्यतन

मैं समाधान साफ ​​किया और यकीन है कि मैं कोड है कि डिबग मोड में संकलित किया गया था के रूप में टिप्पणी में सिफारिश पर चल रहा था बनाया है। उनमें से कोई भी कुछ भी बदलने लग रहा था।

मुझे उत्सुकता शुरू हुई, हालांकि जब मैंने देखा कि मेरे सभी यूनिट परीक्षण अभी भी गुजर रहे हैं। थोड़ी अधिक नींद के बाद मैंने पाया कि जब मैंने एक और बार कदम रखा (यानी सदस्य के ऊपर कदम रखा गया है। जोड़ें) कीमत में जादुई रूप से इसका सही मूल्य है।

क्या नेटरेटर ब्लॉक में उपज कमांड के समान टर्नरी ऑपरेटरों के किसी प्रकार का देरी रिज़ॉल्यूशन करता है? मैंने इसे पहले कभी नहीं देखा है, लेकिन मुझे नहीं पता कि यह और क्या हो सकता है। मुझे लगता है कि मैं अभी भी रिलीज मोड में संकलित कोड पर गलती से चल रहा कोड पर भी चल रहा था। मैंने खुद को तीन बार जांचने के बाद डंबर गलतियां की हैं।

+0

प्रतिक्रिया के लिए धन्यवाद। मेरी स्क्रीन शॉट्स को देखो। मैंने उनमें कुछ घड़ी खिड़कियों को पिन किया है ताकि आप मेरे चर के मान देख सकें। चरण के बाद भी कीमत 0 है। –

+5

एक 'साफ' करें और फिर पुनर्निर्माण करें। कभी-कभी डीबगिंग जानकारी वास्तविक निष्पादन योग्य कोड के साथ सिंक हो जाती है। – Servy

+10

सुनिश्चित करें कि आप डिबग मोड में चल रहे हैं, रिलीज़ मोड में नहीं। यह भी सत्यापित करें कि आपके द्वारा पिन किया गया 'मूल्य' गलती से सदस्य नाम को समान नाम से नहीं है। – dasblinkenlight

उत्तर

6

स्क्रीनशॉट से कोड का निदान करने के लिए असंभव, तो बस अनुमान लगाएं।

आप हमेशा पूरी तरह से पर निर्भर नहीं हो सकते कि एक घड़ी अभिव्यक्ति आपको क्या बताती है। पहला संभावित विफलता मोड डीबगिंग कोड है जिसे अनुकूलित किया गया था। एक स्थानीय चर जैसे मूल्य को आमतौर पर स्टिक के बजाय एक सीपीयू रजिस्टर में संग्रहीत करने के लिए जिटर ऑप्टिमाइज़र द्वारा अनुकूलित किया जाएगा। घड़ी अभिव्यक्ति आपको स्टैक स्थान मान दिखाएगी, सीपीयू रजिस्टर मान नहीं। 0 के साथ एक आम परिणाम है। इसके खिलाफ आपके पास एकमात्र वास्तविक रक्षा केवल डीबगिंग कोड है जो डीबग कॉन्फ़िगरेशन द्वारा बनाई गई थी।

दूसरी विफलता मोड जिस तरह घड़ी अभिव्यक्ति का मूल्यांकन किया जाता है। जब यह एक संलग्न डीबगर का पता लगाता है तो सीएलआर एक समर्पित धागा शुरू करता है। डीबगर घड़ी दृश्य अभिव्यक्तियों का मूल्यांकन करने के लिए इस धागे का उपयोग कर सकते हैं। यदि किसी चर के पास कोई थ्रेड एफ़िनिटी है तो यह गलत हो सकता है। सामान्य मामले वेरिएबल्स हैं जो [थ्रेडस्टैटिक] हैं या COM ऑब्जेक्ट्स के गुण हैं।

+0

मुझे नहीं लगता कि आपके द्वारा उल्लेख किए गए संभावित मुद्दों में से कोई भी मेरे मामले में प्रासंगिक होगा, लेकिन मुझे धन्यवाद देने से मुझे बहुत अधिक जानकारी है। यह भी उत्सुक है कि आपने यह सब कहाँ से सीखा? कोई विशेष लेख या आपने इसे पिछले कुछ वर्षों में उठाया है? –

0

मुझे एक ही समस्या थी और मैंने यह भी सोचा कि मैं पागल हो रहा था।

मैंने पाया कि आईआईएस के बजाय "विजुअल स्टूडियो डेवलपर सर्वर" का उपयोग करने के लिए मेरा एएसपी.NET ऐप बदलना इसे ठीक करता है। करुणा क्योंकि मुझे आईआईएस का उपयोग करना पसंद है क्योंकि उत्पादन में क्या हो रहा है।

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