2011-11-17 9 views
11

下記の問題を突き抜けました。 "Console.TreatControlCAsInput = true;"の場合、ReadLine()で[enter]を2回押す必要があります。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

Windows 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にMicrosoftによって掲示される

でマイクロソフト接続に報告されていますSystem.Consoleでこの問題を報告していただき、ありがとうございます。 の動作は、添付のWin32 Cアプリケーションのある で示されているように、Windowsコンソールサブシステムに存在します。私はこの問題を Windowsコンソールサブシステムの所有者に報告しました。あなたがこの上で実行されているどのようなプラットフォーム

おかげで、ジョシュ

+2

注釈:接続項目は「設計通りに」閉じられました。彼らはそれが特徴であると判断したように、そう思える。 – NotMe

+0

@Chris Lively驚くべき "機能" - ReadLine()を使用できないように破ります。この特定の問題に何人の開発者が衝突したのだろうか。 – Contango

関連する問題