簡體   English   中英

int.Parse,輸入字符串的格式不正確

[英]int.Parse, Input string was not in a correct format

我將如何解析空字符串? int.Parse(Textbox1.text)給我一個錯誤:

輸入字符串的格式不正確。
System.FormatException: 輸入字符串的格式不正確。

如果文本為空( Textbox1.text = '' ),則會引發此錯誤。 我理解這個錯誤,但不知道如何糾正這個錯誤。

如果您希望在空文本框中默認為 0(並在格式錯誤的輸入上引發異常):

int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);

如果您希望將任何格式錯誤的輸入默認為 0:

int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;

嗯,你希望結果是什么? 如果您只想驗證輸入,請改用int.TryParse

int result;

if (int.TryParse(Textbox1.Text, out result)) {
    // Valid input, do something with it.
} else {
    // Not a number, do something else with it.
}
if(!String.IsNullOrEmpty(Textbox1.text))
    var number = int.Parse(Textbox1.text);

或者甚至更好:

int number;

int.TryParse(Textbox1.Text, out number);

嘗試這個:

int number;
if (int.TryParse(TextBox1.Text, out number))
{
    //Some action if input string is correct
}

如果輸入是數字或空字符串,這將起作用。 如果字符串為空,它將返回零,否則將返回實際數字。

int.Parse("0"+Textbox1.Text)

您還可以使用這樣的擴展方法:

public static int? ToNullableInt32(this string s)
{
    int i;
    if (Int32.TryParse(s, out i)) return i;
    return null;
}

這是參考: How to parse a string into a nullable int in C# (.NET 3.5)

你可以用簡單的try/catch包裝它......

暫無
暫無

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

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