stackoverflowを検索しましたが、質問に答えるものが見つかりませんでした。残念ながら、検索クエリとして言葉で表現するのは簡単な質問ではありません。
私はc#を使用しており、ユーザーに1〜4のオプションを選択するように求めるメニューがあります。選択した値が整数であることを確認していますが、文字または記号を入力するたびにコードが壊れます。これの検証をに追加するにはどうすればよいですか?私のコードは現在次のとおりです。
static void Main(string[] args)
{
DirectoryInfo folderInfo = new DirectoryInfo("C:\\Windows");
FileInfo[] files = folderInfo.GetFiles();
int mainMenuChoice=0;
while ( mainMenuChoice != 1 || mainMenuChoice!= 2 || mainMenuChoice!= 3 || mainMenuChoice!= 4)
{
Console.WriteLine("What would you like to do?");
Console.WriteLine("1. Full File Listing.");
Console.WriteLine("2. Filtered File Listing.");
Console.WriteLine("3. FolderStatistics.");
Console.WriteLine("4. Quit.");
mainMenuChoice = int.Parse(Console.ReadLine());
if (mainMenuChoice == 1)
{
Option1();
}
if (mainMenuChoice == 2)
{
Option2();
}
if (mainMenuChoice == 3)
{
Option3();
}
if (mainMenuChoice == 4)
{
}
else
{
Console.WriteLine("you didnt enter a valid input! try again.");
}
}
コマンドラインからの読み取り値をに変更します
if(Int32.TryParse(Console.ReadLine(), out mainMenuChoice))
{
if (mainMenuChoice == 1)
Option1();
else if (mainMenuChoice == 2)
Option2();
else if (mainMenuChoice == 3)
Option3();
else if (mainMenuChoice == 4)
Option4();
else
Console.WriteLine("you didnt enter a valid input! try again.");
}
else
{
Console.WriteLine("you didnt enter a valid input! try again.");
}
そして、TryParseifのelse部分でユーザーへの警告メッセージを繰り返します。
Int32.TryParseは、コマンドラインの文字を整数に変換してoutパラメーターに割り当てることができない場合にfalseを返しますmainMenuChoice
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加