1

C# でターミナルからユーザー入力を取得しようとしていますが、ユーザーが入力を開始したときにのみ ReadLine を実行したいと考えています。基本的に、私が今セットアップしている方法は、while ループにいて、メッセージを受信したか送信したかを確認したいのですが、ReadLine を呼び出してメッセージを送信しようとして立ち往生したくありません。現時点で送信するものが何もない場合は、ユーザーがメッセージを送信するのを待ちます。私のコードは次のようになります。

While (true)
{
    // If messages to be received
        // Receive them

    // Check to see if the user is typing input
    if (Console.KeyAvailable)
    {
        string userInput = Console.ReadLine();
        // Do stuff...
    }   

}

基本的に何が起こっているかというと、完全に正常に動作しますが、ユーザーが入力した最初の文字はターミナル ウィンドウに表示されませんが、ReadLine によって問題なく取得されます。とにかく、ユーザーが入力しているものすべてをすぐに見ることができるように、これを機能させることができますか?

ありがとう!

4

1 に答える 1

1

Console.ReadKey(true);不足している項目を読み取るために使用してから、 readline メソッドで他の部分を読み取り、それを入力に追加できます。

于 2013-03-20T18:41:27.647 に答える