C#整数検証

user3158872

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]

編集
0

コメントを追加

0

関連記事