Проблема с ControlControlCAsInput. Это ошибка?

Просто наткнулся на проблему, описанную ниже. Если "Console.TreatControlCAsInput = true;", вы должны дважды нажать [enter] на ReadLine().

Я написал демо-код ниже. Я правильно понял, что этот код демонстрирует ошибку в платформе .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();

Ответ 1

Это известная проблема с подсистемой Windows Console и сообщается в Microsoft Connect еще в 2006 году.

Отправлено Microsoft 22/05/2007 в 12:37

Здравствуйте, АРОС, Благодарим вас за сообщение об этой проблеме в System.Console. поведение существует с подсистемой Windows Console, как показано с приложением Win32 C. Я сообщил об этом владельца подсистемы Windows Console.

Спасибо, Джош

Ответ 2

Не ошибка в Framework, но она выглядит как ошибка в подсистеме консоли .