求助求助关于 c# .net5 Console.ReadLine 的一个问题

2021-01-10 21:54:24 +08:00
 zxCoder

求助求助关于 c# .net5 Console.ReadLine 的一个问题

代码大致如下:


while (run) {

        Console.Write(question);

	    string value = Console.ReadLine();

}

然后刚才偶然发现,在 win10 下运行,ReadLine 这里可以正常使用左右方向键,修改前面某个字符,也可以使用上下方向键,回到上一个输入。

但是,在 linux 下居然不行!!! 在 Console.ReadLine 的时候方向键没有任何反应

求解!

522 次点击
所在节点    问与答
3 条回复
codehz
2021-01-10 22:22:06 +08:00
Windows 那个是私有扩展,linux 的才是正确的行为(雾)
正常来说应该需要自己实现一个, 或者用第三方库 https://github.com/tonerdo/readline
ysc3839
2021-01-10 22:27:11 +08:00
这个叫行编辑 (line editing) 功能。Windows 认为大多数命令行程序都需要行编辑,所以内置了一个功能比较简单的行编辑,且默认启用,不需要的或者需要自己实现行编辑的程序可以关掉。
而 Linux 等 Unix 系统没有内置这个功能,需要应用程序自己实现才有。
zxCoder
2021-01-11 08:54:01 +08:00
@codehz
@ysc3839

原来如此。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/743622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX