2016-08-05 15 views
0

Ich bin mit dem IsNumeric() Funktion in Visual Basic 2012.Fehler mit isNumeric() in VB

mein Code ist dies

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

und ich erhalte einen Fehler auf dem isNumeric (Eingang) Teil

isNumeric ist ein Namensraum und kann nicht als Ausdruck verwendet werden

Ich möchte nur wissen, was falsch ist, ich kann keine Dokumentation finden, die diese Funktion bereits geändert hat oder so.

+0

keine sir und die Beispiele von msdn über information.isnumeric sind wie das, was ich benutze, bekomme ich immer noch Fehler – mark

Antwort

5

Es klingt, als hätten Sie einen Namenskonflikt erstellt. Sie haben Ihr Projekt vermutlich 'IsNumeric' genannt. Der Stammnamespace für das Projekt wird standardmäßig nach dem Projekt benannt, sodass Sie jetzt einen Stammnamespace namens "IsNumeric" haben, der Vorrang vor der IsNumeric-Methode hat.

Es gibt eine Reihe von Optionen, um dies zu beheben. Erstens können Sie den Stammnamespace für das Projekt auf etwas anderes als "IsNumeric" ändern, was Sie in den Projekteigenschaften tun würden. Alternativ können Sie den Methodennamen mit seinem Namensraum, seinem Modul oder beiden kennzeichnen, d. H. Microsoft.VisualBasic.IsNumeric, Information.IsNumeric oder Microsoft.VisualBasic.Information.IsNumeric.

Ich würde eher vorschlagen, IsNumeric sowieso nicht zu verwenden. Es kann nicht zwischen den Arten von Zahlen unterscheiden und bietet keinen Zugriff auf den tatsächlichen numerischen Wert. Wenn Sie irgendetwas dieser Art tun müssen, rufen Sie stattdessen die entsprechende TryParse Methode, z.

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 

Beachten Sie, dass IsNumeric ruft tatsächlich Double.TryParse intern und ist der Grund, warum es in erster Linie erstellt wurde. Deshalb ist das Aufrufen von IsNumeric und dann etwas wie CDbl schlecht: Sie analysieren den gleichen Text in diesem Fall zweimal.

+0

Meine Datei heißt IsNumeric> _ mark

0

Es ist sehr seltsam, weil IsNumeric eine Standardfunktion in VB.Net ist. Versuchen Sie, eine neue Konsolenanwendung zu erstellen:

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

    If (IsNumeric(str)) Then 

    End If 
End Sub 

Für mich funktioniert es.