Завершение работы приложения консоли .NET

Любые идеи о том, как реализовать завершение вкладки для консольного приложения .NET(С#)? И я имею в виду в приложении, которое запускается, а затем петли для ввода пользователя (например, если вы запускаете ftp.exe без каких-либо аргументов), например:

        string line = string.Empty;
        while (line != "exit")
        {
            //do something here
            Console.ReadLine();
        }

Я знаю, что я, вероятно, не мог использовать readline, но я хотел бы иметь возможность делать вкладку в той же точке, где вы извлекаете входные данные от пользователя.

Ответ 1

Взгляните на этот код из проекта Mono http://tirania.org/blog/archive/2008/Aug-26.html На днях я играл с ним. Он выполняет много команд редактирования команд, но я не думаю, что это завершение линии.

Ответ 2

Сделайте консоль .ReadKey().

Если вы получаете вкладку, посмотрите, что у вас есть в буфере команд, и пропустите доступные команды. Если someCommand.Name.BeginsWith(currentinput), у вас есть победитель, и вы можете написать для отображения списка возможных команд.

Если есть только одна (TM), вы можете заменить ее тем, что пользователь набрал:)

Ответ 3

Я создал небольшую библиотеку, чтобы добавить эту функциональность в приложение, которое я сделал:

https://github.com/fjunqueira/hinter

Это может не соответствовать вашим потребностям, но вы можете свободно редактировать его.

Ответ 5

https://github.com/tonerdo/readline - это то, что вам нужно. отличная библиотека, доступная как нюгет от талантливого разработчика.