-3

私は休憩しようとしています。欲求不満から。コンソールで知っておく必要があるイベント ハンドラーはありますか?

無限ループ

4

3 に答える 3

6

capslockループに入る前に、一度 だけ値を設定しています。boolは値型であるため、プロパティへの参照ではなく、プロパティのコピーを取得しますConsole.CapsLock。最初の割り当ての後、変数の値が変わることはありません。あなたが望むのは次のようなものです:

while(Console.CapsLock)
{
    // inform user, perhaps remove the loop and just tell them once
}

または

capslock = Console.CapsLock;
while(capslock)
{
    Console.WriteLine("CapsLock on");
    capslock = Console.CapsLock;
}

余談ですが、ループ内でできるだけ速くメッセージを書くことは、おそらく悪い考えです。なぜなら、ユーザーが何かをする前に画面が一杯になってしまうからです。

于 2013-07-27T20:47:37.273 に答える
1

元の質問には答えませんが、caps lock をチェックしている理由は、すべて小文字で入力するユーザー名が必要なためusers.Contains(username)、スクリーンショットで提供した場所で以下のようなことを行うことができるようです。

これを行うより良い方法は、比較子を設定できる contains オーバーロードを使用してから、大文字と小文字を区別しない文字列比較子を使用してテストすることです。

if(users.contains(username, StringComparer.OrdinalIgnoreCase))
{
    //username existed
}
else
{
   //username did not exist
}

大文字と小文字を区別しないString.Equalsにも同様のオーバーロードがあります

//This would return true if "username = marietjie" and "testUsername = MARIETJIE"
if(username.Equals(testUsername, StringComparison.OrdinalIgnoreCase))
{
    //username matched
}
else
{
   //username did not match
}
于 2013-07-27T21:47:32.083 に答える
-4

こんな悩みを解決!!

これはうまくいきました!!!

于 2013-07-27T21:00:51.127 に答える