关于如何为 .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), ,您有一个获胜者,您可以编写屏幕可能的命令列表。

如果 只有一个(TM) 您可以用用户输入的内容替换它:)

我创建了一个小库来将此功能添加到我制作的应用程序中:

https://github.com/fjunqueira/hinter

它可能不适合您的需要,但您可以随意编辑它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top