私はこのアプローチを使用しました。これによってパフォーマンスが低下するかどうかはわかりませんが、正規表現を使用するのはクールだと思います。これがあなたのためにうまくいくかどうか私に知らせてください
これをTOPに追加
using System.Text.RegularExpressions;
次に、以下を使用します。
bool bEnteredNumberNotValid = true;
while (bEnteredNumberNotValid)
{
Console.WriteLine("Your age:");
string sAge = Console.ReadLine();
string regString = "(^[0-9]+$)"; //REGEX FOR ONLY NUMBERS
Regex regVal = new Regex(regString, RegexOptions.IgnoreCase | RegexOptions.Singleline); //REGEX ENGINE
Match matVal = regVal.Match(sAge); //REGEX MATCH WITH THE INPUT
if (!matVal.Success) // IF THERE IS NO MATCH, SHOW THE BELOW
{
Console.WriteLine("{0} is not an integer", sAge);
}
else // ELSE SET bEnteredNumberNotValid FALSE AND GET OUT.
{
bEnteredNumberNotValid = false;
Console.WriteLine("Press any key to continue...");
Console.ReadLine();
}
}
出力!
上記のプログラムの出力を表示するには、ここをクリックしてください
お役に立てれば。