0

私は現在、過去6か月間機能している次のコード行を持っています:

If IsNumeric(txtProductID.Text) Then
   ...do stuff
Else
   Dim msg As String = "Error!"
End If

突然、どんなエントリを入れてもtxtProductID(単純な数字を含む)、失敗します。私がこれに夢中になる理由はありますか?

4

3 に答える 3

3

暗闇でのショットのようなものですが、注意すべきことの 1 つは、誰かが同じクラス内に IsNumeric というプライベート メソッドを作成した可能性があることです。上記のコードが Microsoft.VisualBasic.IsNumeric() を実行していることは確かですか? カーソルを IsNumeric に置いて F12 を押すと、定義はどこを指していますか?

于 2009-08-02T18:35:36.777 に答える
2

Trim()文字列を関数に渡す前に試してみてください。さらに、 のような VB 固有の関数を使用するのではなくIsNumeric、次のようなアプローチを試すことができます。

Dim input as Integer

If Integer.TryParse(txtProductID.Text, input) Then
    ....do stuff with input
Else
    Dim msg as String = "Error!"
End if

数値が 10 進数の場合、 と にも対応する関数がDoubleありSingleます。

失敗している特定の理由についてIsNumericは、お伝えできませんでした。ただし、言語固有ではなく、言語に依存しない BCL 準拠の関数 ( 、 など) に固執することが常に役立つとわかってきましIsNumericStr

于 2009-08-02T18:32:15.613 に答える
0

うーん...私はばかです...助けてくれてありがとう、しかしどうやら私は入力を受け入れる前にフォーム全体をクリアしていたので、「」は決して「IsNumeric」として渡されません。この質問を二度と見ないでください。私は体調が悪い。

ご協力いただきありがとうございます。

于 2009-08-02T18:41:59.647 に答える