VB.Net Int32.TryParse 转换异常

VB.Net Int32.TryParse Conversion Exception

我知道这可能被认为是重复的:Parse v. TryParse

但是,有人能告诉我为什么这段代码抛出了异常,而 Tryparse 根本不应该抛出任何异常吗?

If Int32.TryParse(txtOrdLine.Text.Trim, txtOrdLine.Text) = False Then

在 txtOrdLine 中输入的值为“1-4”。

异常是它无法将字符串“1-4”转换为整数类型。这是 ASP.Net 4.5 站点的代码隐藏,如果有区别的话。

如有任何信息,我们将不胜感激。

谢谢。

发生错误是因为将第二个参数从 String 自动转换为 Int32 失败。

VB.Net 有效地将您的代码重写为:

Dim temp as Int32
temp = Int32.Parse(txtOrdLine.Text) ' Exception here!
Int32.TryParse(txtOrdLine.Text.Trim, temp)
txtOrderLine.Text = temp.ToString()

您需要创建一个临时 Int32 值并将其传递到 Int32.TryParse()

如果这只是一个检查,那么您不需要变量。

    If Not Int32.TryParse(txtOrdLine.Text.Trim, Nothing) Then
        'here if parse fails
    End If