2011-11-17 13 views
11

बस नीचे वर्णित समस्या से भाग गया। यदि "Console.TreatControlCAsInput = true;", आपको ReadLine() पर दो बार [Enter] दबा देना होगा।TreatControlCAsInput मुद्दा। क्या यह एक बग है?

मैंने नीचे कुछ डेमो कोड लिखा है। मैं यह अनुमान लगाने में सही हूं कि यह कोड .NET 4 ढांचे में एक बग प्रदर्शित करता है?

 Console.Write("Test 1: Console.TreatControlCAsInput = false\nType \"hello\": "); 
     { 
      string readline = Console.ReadLine(); // type "hello" [enter]. 
      Console.WriteLine("You typed: {0}", readline); 
      // Prints "hello". 
     } 

     Console.Write("Test 2: Console.TreatControlCAsInput = true\nType \"hello\": "); 
     Console.TreatControlCAsInput = true; 
     { 
      string readline = Console.ReadLine(); // type "hello" [enter]. 
      Console.WriteLine("You typed: {0}", readline); 
      // Should print "hello" - but instead, you have to press [enter] 
      // *twice* to complete the ReadLine() command, and it adds a "\r" 
      // rather than a "\n" to the output (so it overwrites the original line) 
     } 

     // This bug is a fatal error, because it makes all ReadLine() commands unusable. 

     Console.Write("[any key to exit]"); 
     Console.ReadKey(); 
+0

क्या मंच आप इस पर चल रहे हैं? – Oded

+1

मैं इसे विंडोज 7 पर पुन: उत्पन्न कर सकता हूं। ऐसा लगता है कि ** HOME ** बटन –

+1

का कार्य कर रहा है, मुझे लगता है कि यह 2006 में रिपोर्ट किया गया था जहां डिज़ाइन द्वारा बंद किया गया है। http://connect.microsoft.com/VisualStudio/feedback/details/226101/console-treatcontrolcasinput-true-breaks-readline – automatic

उत्तर

13

यह Windows कंसोल उपतंत्र के साथ known issue है और माइक्रोसॉफ्ट कनेक्ट पर सूचित किया गया है 2006.

12:37

हैलो Aros पर माइक्रोसॉफ्ट 22/05/2007 पर द्वारा पोस्ट में वापस आ गया, System.Console में इस समस्या की रिपोर्ट करने के लिए धन्यवाद। व्यवहार विंडोज Winsole सी अनुप्रयोग के साथ मौजूद है, जैसा कि संलग्न Win32 सी अनुप्रयोग के साथ प्रदर्शित किया गया है। मैंने इस मुद्दे को विंडोज कंसोल उपप्रणाली के मालिक को पर रिपोर्ट की है।

धन्यवाद, जोश

+2

एक साइड नोट के रूप में: उस कनेक्ट आइटम को "डिज़ाइन द्वारा" बंद कर दिया गया था। तो लगता है जैसे उन्होंने फैसला किया कि यह एक विशेषता थी। – NotMe

+0

@ क्रिस लिली अमेज़िंग "फीचर" - यह रीडलाइन() को तोड़ देता है, इसलिए इसका उपयोग करने योग्य नहीं है। मुझे आश्चर्य है कि इस विशेष समस्या से कितने डेवलपर्स टकरा चुके हैं। – Contango

3
नहीं

फ्रेमवर्क पर एक बग लेकिन यह Windows console subsystem में एक बग की तरह दिखता है।

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