在VB中使用isNumeric()时出错

时间:2016-08-05 06:47:33

标签: vb.net visual-studio

我在visual basic 2012中使用IsNumeric()函数。

我的代码就是这个

Dim input As String = "123"
    If isNumeric(input) Then
        'number codes
    Else
        'not a number codes
    End If

我在isNumeric(输入)部分得到错误

  

isNumeric是一个名称空间,不能用作表达式

我只想知道这有什么问题,我找不到任何有关此功能已经改变的文档或其他内容。

2 个答案:

答案 0 :(得分:5)

听起来你创造了一个名字冲突。您可能已将项目命名为“IsNumeric”。默认情况下,项目的根命名空间以项目命名,因此您现在拥有一个名为“IsNumeric”的根命名空间,该命名空间优先于IsNumeric方法。

有很多选项可以解决这个问题。首先,您可以将项目的根命名空间更改为“IsNumeric”以外的其他名称,您可以在项目属性中执行此操作。或者,您可以使用其名称空间,模块或两者来限定方法名称,即使用Microsoft.VisualBasic.IsNumericInformation.IsNumericMicrosoft.VisualBasic.Information.IsNumeric

我倾向于建议不要使用IsNumeric。它无法区分数字类型,也无法访问实际数值。如果您需要执行任何此类操作,请调用相应的TryParse方法,例如

Dim number As Double

If Double.TryParse(someText, number) Then
    'The input was a valid Double and the value is in 'number'.
Else
    'The input was not a valid Double.
End If

请注意,IsNumeric实际上在内部调用Double.TryParse,这是它首先创建的原因。这就是为什么调用IsNumeric然后调用CDbl之类的东西很糟糕:在这种情况下你要解析相同的文本两次。

答案 1 :(得分:0)

这很奇怪,因为IsNumeric是VB.Net中可用的标准函数。尝试创建一个新的控制台应用程序:

Sub Main()
    Dim str As String = "123"

    If (IsNumeric(str)) Then

    End If
End Sub

对我而言,它有效。