2

ユーザーの入力が数値かどうかを確認したい。はいの場合、関数を実行し続けたい場合は、彼に警告して再度実行したい.

Console.WriteLine(String.Concat("choose your action" ,Environment.NewLine ,
                                "1.Deposit", Environment.NewLine,
                                "2.Withdraw", Environment.NewLine,
                                "3.CheckAccount"));
string c = Console.ReadLine();
int value = Convert.ToInt32(c);

if (value==char.IsLetterOrDigit(value)) //<----- no good why?
{
    switch (value)
    {
        case 1:
            Deposit();
            return;
        case 2:
            Withdraw();
            return;
        case 3:
            CheckAccount();
            return;
    }
}
4

2 に答える 2

15

使用するだけです:

string c = Console.ReadLine();
int value;
if (int.TryParse(c, out value)) { /*Operate*/ }

編集: コードを作成者のコメントに適合させるには:

if (int.TryParse(c, out value) && value >= 1 && value <= 3) { /*Operate*/ }
于 2013-01-13T14:50:44.110 に答える
1

int 値 = Convert.ToInt32(c); c が整数のみで構成される文字列でない場合、これは失敗します。この状況を処理するには、try catch を使用します。

于 2013-01-13T15:06:08.030 に答える