我有一个类通过TextReader接受输入,并允许类从控制台或文本框接收输入。
以下是我正在尝试做的一个非常基本的例子:
using System.IO;
class TestReader()
{
public TextReader CurrentStream { get; }
public void SetInputStream( TextReader reader)
{
Reader = reader;
}
}
class Program
{
static void Main( string[] args )
{
TestReader rdr = new TestReader();
rdr.SetInputStream(Console.In);
var input = (char)rdr.CurrentStream.Read();
Console.WriteLine( "You selected: " + input );
}
}
如何更改上述内容以实现ReadKey()
,因为上面示例中的Read()
方法会一直接受输入,直到按下Enter键为止?我想实现ReadKey(),这样它只接受一个按键。
感谢。
**编辑**
为了进一步说明问题,我希望在不使用Console.ReadKey()的情况下实现ReadKey()。我不确定这是否可能,因为谷歌到目前为止还没有发现任何事情。
答案 0 :(得分:0)
我用过
ConsoleKeyInfo info;
do
{
info = Console.ReadKey();
} while (info.KeyChar != '\n' &&
info.KeyChar != '\r');
循环直到我按下
如果您只有输入流或textBox
,则可以执行if
语句。在控制台使用我的示例的情况下,如果textBox
读取它的文本