3

我有一个通过 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()。我不确定这是否有可能,因为谷歌到目前为止什么都没有出现。

4

1 回答 1

0

我用了

     ConsoleKeyInfo info;
     do
     {
        info = Console.ReadKey();
     } while (info.KeyChar != '\n' &&
        info.KeyChar != '\r'); 

循环直到我按下回车键

如果您只有输入流,或者textBox您可以只做一个if语句。在控制台的情况下使用我的例子,在textBox阅读它的文本的情况下

于 2013-08-15T13:37:42.080 回答