簡體   English   中英

驗證用戶輸入C#(控制台)

[英]Validate user input C# (console)

我有以下代碼:

aVariable =  int.Parse(Console.ReadLine());

我遇到的一個問題是我找不到任何支持材料來幫助驗證用戶輸入,例如,如果用戶按下了字母a,這只會殺死程序。

我能做什么? 我在哪里可以找到一個體面的教程?

而不是使用Parse方法而是使用TryParse

int age;

bool isValidInt = int.TryParse(Console.ReadLine(), out age);

你可以使用TryParse ..只需谷歌這個方法。 或者您可以捕獲異常以防止程序崩潰

當無法解析字符串時,int.Parse拋出FormatException。 您可以捕獲此異常並處理它,例如顯示錯誤消息。

另一種方法是使用TryParse:

int number = 0;
bool result = Int32.TryParse(value, out number);
if (result)
{
   Console.WriteLine("Converted '{0}' to {1}.", value, number);         
}

驗證用戶輸入在控制台應用程序中與在Winforms應用程序中的用戶輸入沒有區別。 它與在ASP.NET應用程序中驗證用戶輸入非常相似,只是您沒有很好的驗證控件。

如果您來自ASP.NET背景,請查看人們如何使用CustomValidators - 注意代碼隱藏並忽略客戶端驗證。

此外,您可以像在ASP.NET應用程序中一樣輕松地在Console應用程序中使用RegularExpressions。

可能沒有專門針對控制台應用程序提及驗證的原因是輸入驗證是對輸入的驗證。 這些方法幾乎無處不在。 與ASP.NET相比,唯一的區別是存在自定義控件,可以幫助您完成。

請改用Int32.TryParse並測試成功的Int32.TryParse

Int32 val;
if (Int32.TryParse(userInput, out val))
{
  // val is now the user input as an integer
}
else
{
  // bad user input
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM