2012-03-21 3 views
29

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

उदाहरण के लिए, मैं कोड की निम्न पंक्ति हो सकता है: यदि मैं इस लाइन पर कर्सर बंद करो और quickwatch

double x = Math.Pow(2,3); 

"Math.Pow (2,3)" हिस्सा है, यह मुझे एक देता है त्रुटि और मुझे "सिस्टम" रखने की आवश्यकता है। मेरी अभिव्यक्ति से पहले; जैसा कि मैंने कहा, वही अभिव्यक्ति कोड विंडो में आसानी से चलती है, इसलिए मुझे यकीन नहीं है कि त्रुटि "संदर्भ" कौन सा है।

क्या यह हो सकता है कि कक्षा में घोषित इन डीबग विंडोज संदर्भ नामस्थान, लेकिन परियोजना द्वारा आयात किए गए नेमस्पेस के लिए ऐसा नहीं कर सकते हैं?

+0

काम करता है। क्या आप एक विशेष परियोजना टेम्पलेट का उपयोग कर रहे हैं? – Alex

+2

आप बस नहीं कर सकते। नामस्थान उपसर्ग करना है। – SimpleVar

+0

यह मेरे लिए नामस्थान के बिना भी ठीक काम करता है। वीएस का क्या संस्करण/संस्करण/सर्विस पैक आप उपयोग कर रहे हैं? – adelphus

उत्तर

4

मेरी समझ में QuickWatch और तत्काल खिड़कियों कोड को क्रियान्वित कर रहे हैं/वर्तमान क्रियान्वित संदर्भ के तहत भाव है, तो एक बार वहाँ एक using System; कोड में जगह में, quickwatch खिड़की किसी भी मुद्दे नहीं देंगे है। आपको कुछ दृश्य स्टूडियो बग का सामना करना पड़ सकता है। VisualStudio को पुनरारंभ करने का प्रयास करें और फिर से जांचें।

मुझे इस तरह के मुद्दे का सामना नहीं हुआ है। मुद्दा इस तरह पैदा जब आप त्वरित घड़ी की कोशिश करेंगे Math.Pow(2d, 4d); जब इस System.Math.Pow(2d, 4d);

+13

मुझे यह हर समय सामना करना पड़ता है। तो मेरे साथियों को करो। नियमित सी # कक्षा पुस्तकालय परियोजनाओं के साथ वीएस -2010 एसपी 1 का उपयोग करना। कभी-कभी यह नामस्थान को पहचानता है, कभी-कभी ऐसा नहीं होता है। पैटर्न कभी नहीं मिला। मैंने हमेशा सोचा कि यह वीएस में एक प्रचलित मुद्दा था और हर कोई इसका अनुभव करता है। –

+0

क्या आपके पास वीएस -2010 में डिबगिंग से संबंधित कोई एक्सटेंशन है, क्योंकि मैं वही वीएस -2010 का भी उपयोग कर रहा हूं और अब तक इसमें शामिल नहीं हूं।इसलिए यह मुझे लगता है कि कुछ एक्सटेंशन के कारण हो सकता है। – Saravanan

+0

नहीं, कोई डिबगिंग एक्सटेंशन नहीं। –

3

समाधान की तरह कोड होने:

अपने Program.cs फाइल करने के लिए

जाओ और जोड़ने usings आप के लिए अपने तत्काल खिड़की चाहते हैं उपयोग करते हैं, यह काम करता है के लिए कंसोल और Windows दोनों आप इम उपयोग कर रहे हैं एक कक्षा लाइब्रेरी प्रोजेक्ट

में तत्काल विंडो के लिए आवेदन

Refrence नामस्थान फॉर्म्स "डिज़ाइन टाइम" मोड में मध्यस्थ विंडो, और इसके लिए कुछ नामस्थान संदर्भित करना चाहते हैं, आपको आउटपुट मोड को विंडोज एप्लिकेशन पर सेट करने की आवश्यकता है, और एक प्रोग्राम बनाएं जो कुछ भी नहीं करता है।

  1. सही समाधान एक्सप्लोरर में अपनी परियोजना पर क्लिक करें और गुण क्लिक
  2. आवेदन के तहत, आउटपुट प्रकार बदलने: कक्षा-लाइब्रेरी से विंडोज के लिए आवेदन
  3. अपनी परियोजना के लिए डमी स्तर के निम्नलिखित जोड़ें:

Program.cs एक कंसोल अनुप्रयोग में मेरे लिए

using System; 
//Add all the refrences you need immediate window to use here 

namespace YourNamespace 
{ 
    static class Program 
    { 
     static void Main() 
     { 

     } 
    } 
} 
+0

⁺¹, «Program.cs» फ़ाइल में नामस्थान जोड़कर वास्तव में तत्काल विंडो के लिए चाल थी! –

+0

सिस्टम के मामले में छोड़कर। लिंक्स नेमस्पेस और वीएस2015 लैम्ब्डा डिबगिंग, स्रोत फ़ाइलों में जहां कोई linq अभिव्यक्ति अभी तक निष्पादित नहीं की गई है। एक लाइन 'var temp = संख्यात्मक। श्रेणी (1, 1);' अपने ब्रेकपॉइंट से पहले और इसे हल करने के लिए पुनरारंभ करें। –