1

C# で ConsoleKeyInfo を使用していますが、コンソールに 9 より大きい数値を書き込もうとすると、Console.ReadKey に問題が発生します。たとえば、

ConsoleKeyInfo number;
Console.Write("Write a number: ");
number = Console.ReadKey();

10または11を書きたい場合...コンソールは「1」のみを読み取ります

数字ごとに「Enter」を押したくないので、Console.ReadLineを使いたくありません。

Console.ReadKey を使用して続行する前におそらく 1 秒待つ別の方法はありますか?

ありがとう

4

2 に答える 2

2

質問へのコメントが言うように、定義上Console.ReadKey、単一のキーのみを読み取ります。コンソールからより多くの入力を取得したい場合は、別の関数を使用する必要があります。たとえば、次のようなものを試してください。

Console.Write("Write a number: ");
string line = Console.ReadLine();
int num = 0;
if (line != null)
    num = int.Parse(line);

これが始まりであり、エラーチェックは最小限に抑えられます。そこから何が得られるか見てみましょう。

于 2011-04-11T13:51:04.767 に答える
2

あなたができる最善のことは、を使用することですConsole.ReadLine()。あなたがその番号を読み終えたことをプログラムが知る方法はありません。

アップデート

固定長の番号 (つまり 13 桁の ISBN) を使用している場合は、ReadKey を使用できますが、次のようになります。

string isbn = "";
while (isbn.Length < 13)
{
    isbn += Console.ReadKey().KeyChar;
}
于 2011-04-11T13:49:53.157 に答える