2011-11-17 28 views
11

Chỉ cần chạy qua vấn đề được mô tả bên dưới. Nếu "Console.TreatControlCAsInput = true;", bạn phải nhấn [enter] hai lần trên ReadLine().TreatControlCAsInput issue. Đây có phải là một lỗi?

Tôi đã viết một số mã demo bên dưới. Tôi chính xác trong phỏng đoán rằng mã này chứng tỏ một lỗi trong khuôn khổ .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

nền tảng gì bạn đang chạy này trên? – Oded

+1

Tôi có thể tạo lại điều này trên Windows 7. Nhập có vẻ như đang thực hiện chức năng của nút ** HOME ** –

+1

Tôi thấy báo cáo được báo cáo vào năm 2006, nơi được đánh dấu là đã đóng, theo thiết kế. http://connect.microsoft.com/VisualStudio/feedback/details/226101/console-treatcontrolcasinput-true-breaks-readline – automatic

Trả lời

13

Nó là một known issue với hệ thống phụ của Windows Console và đã được báo cáo trên Microsoft Connect trở lại trong 2006.

văn bởi Microsoft vào 22/05/2007 tại 12:37

Xin chào Aros, Cảm ơn bạn đã báo cáo sự cố này trong System.Console. Hành vi tồn tại với hệ thống con Windows Console, như được minh họa với ứng dụng Win32 C đính kèm. Tôi đã báo cáo vấn đề cho chủ sở hữu hệ thống con Windows Console.

Cảm ơn, Josh

+2

Lưu ý: mục kết nối đã bị đóng là "theo thiết kế". Vì vậy, âm thanh như họ đã quyết định nó là một tính năng. – NotMe

+0

@Chris Lively Amazing "tính năng" - nó phá vỡ ReadLine() vì vậy nó không sử dụng được. Tôi tự hỏi có bao nhiêu nhà phát triển đã va chạm với vấn đề cụ thể này. – Contango

Các vấn đề liên quan