2011-11-17 21 views
11

Acabo de ver el problema que se describe a continuación. Si "Console.TreatControlCAsInput = true;", debe presionar [enter] dos veces en ReadLine().Problema TreatControlCAsInput. ¿Es esto un error?

He escrito un código de demostración a continuación. Estoy en lo cierto al suponer que este código demuestra un error en el marco .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

¿En qué plataforma está ejecutando en este? – Oded

+1

Podría reproducir esto en Windows 7. Ingrese parece estar haciendo la función del botón ** INICIO ** –

+1

Lo veo reportado en 2006 donde está marcado como cerrado, por diseño. http://connect.microsoft.com/VisualStudio/feedback/details/226101/console-treatcontrolcasinput-true-breaks-readline – automatic

Respuesta

13

Es un known issue con el subsistema de la consola de Windows y ha sido reportado en Microsoft Connect de vuelta en 2006.

Publicado por Microsoft el 22/05/2007 a las 12:37

Hola Aros, Gracias por informar este problema en System.Console. El comportamiento existe con el subsistema consola de Windows, como se demuestra con la aplicación Win32 C adjunta. He informado sobre el problema al propietario del subsistema de la consola de Windows.

Gracias, Josh

+2

Como nota al margen: ese elemento de conexión se cerró como "por diseño". Entonces parece que decidieron que era una característica. – NotMe

+0

@Chris Lively Amazing "característica" - rompe ReadLine() por lo que es inutilizable. Me pregunto cuántos desarrolladores han chocado con este problema en particular. – Contango

Cuestiones relacionadas