gpt4 book ai didi

c# - 为什么 ReadKey 在从 Git Bash 运行 .net-core 控制台应用程序时抛出异常?

转载 作者:行者123 更新时间:2023-12-04 00:56:03 27 4
gpt4 key购买 nike

这是代码:

ConsoleKeyInfo cki;

while((cki = Console.ReadKey(true)).Key != ConsoleKey.Escape)
{
Console.WriteLine(cki.Key);
}

当我使用 dotnet run 从 cmd 或 powershell 运行它时,一切正常。但是,当我从 Git Bash 运行它时,它会引发以下异常:

Unhandled exception. System.InvalidOperationException: Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.

最佳答案

据推测,Git Bash 正在使用 IO 重定向 - 它被允许这样做 - 而其他人......不是。那么,解决方案是使用 Read 而不是 ReadKey - 至少如果重定向正在发挥作用。您可能可以通过 Console.IsInputRedirected 检测到这一点 - 并为可能的情况选择最有用的策略,但是:您将无法以相同的方式检测 key ,因此在这种情况下您可能需要稍微不同的用户体验.

关于c# - 为什么 ReadKey 在从 Git Bash 运行 .net-core 控制台应用程序时抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62469201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com