私が書いている小さなC#コンソールアプリがあります。
YキーまたはNキーのいずれかに関するユーザーからの指示をアプリで待機させたい(他のキーが押された場合、アプリはこれを無視してYまたはNのいずれかを待機し、YまたはNに依存するコードを実行します回答。
私はこのアイデアを思いついた、
while (true)
{
ConsoleKeyInfo result = Console.ReadKey();
if ((result.KeyChar == "Y") || (result.KeyChar == "y"))
{
Console.WriteLine("I'll now do stuff.");
break;
}
else if ((result.KeyChar == "N") || (result.KeyChar == "n"))
{
Console.WriteLine("I wont do anything");
break;
}
}
残念ながら、VSは結果が気に入らないと言っていますが、オペランドが「char」または「string」に適用できないため、Keychat ==
何か助けてください?
前もって感謝します。
KeyChar
はchar
であり、"Y"
はstring
です。
代わりにKeyChar == 'Y'
のようなものが必要です。
代わりにこれを確認してください
string result = Console.ReadLine();
そして結果を確認した後
あなたが探しているのはこのようなものです
void PlayAgain()
{
Console.WriteLine("Would you like to play again? Y/N: ");
string result = Console.ReadLine();
if (result.Equals("y", StringComparison.OrdinalIgnoreCase) || result.Equals("yes", StringComparison.OrdinalIgnoreCase))
{
Start();
}
else
{
Console.WriteLine("Thank you for playing.");
Console.ReadKey();
}
}
おそらく、ユーザーがEnterキーを押して応答を確認する必要があるため、ReadLineが最適です。また、一般的な比較チェックのために、文字列応答を大文字に変換します。そのようです:
string result = Console.ReadLine();
if (result.ToUpper().Equals("Y"))
{
// Do what ya do ...