Завершение вкладки консольного приложения .NET

StackOverflow https://stackoverflow.com/questions/46346

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

Выполните Console.ReadKey().

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

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

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

https://github.com/fjunqueira/hinter

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top