【发布时间】:2012-07-12 14:20:23
【问题描述】:
首先,Console.ReadKey() 不是答案。
我需要能够擦除我写的第一个字符。
基本上,我想要做的是一个测量你打字速度的应用程序。 它工作得很好,但我正在努力解决美学问题。
我一开始是调用Console.ReadKey(),然后调用这个启动计时器的函数(好吧,我在编写应用程序30分钟后意识到恰好有一个秒表类._.),然后我将存储用户使用Console.ReadLine() 输入的字符串,然后停止此计时器。
static Word[] getWords()
{
Word[] words;
int c = Console.ReadKey().KeyChar;
Timing.start();
string str = (c.ToString() + Console.ReadLine()).ToLower();
charCount = str.Length;
words = Word.process(str);
Timing.stop();
return words;
}
charCount 是一个静态 int,Word 只是一个包装字符串的类。
Word.process 是一个函数,它接受一个字符串,省略所有符号并返回用户键入的单词数组。
Timing 只是一个包装 Timer 类的类。
我认为这就是代码需要解释的全部内容。
当用户键入一个字符并且他必须能够擦除它时,我需要做的是调用Timing.start()。
【问题讨论】:
-
必须是控制台应用程序吗?因为如果你被允许使用 Windows 窗体,那真的不是适合这项工作的工具......
-
google“基于事件的键盘输入”
-
为什么
Console.ReadKey()不是答案?因为你需要能够使用退格?您是否有任何理由不能使用Console.ReadKey()并自己处理退格功能? -
@minitech:它仍将是一个控制台应用程序。对此感到抱歉:/
-
@AllonGuralnek:嗯,我可以。这实际上是我最后的手段。
标签: c# .net input console.readkey