私は現在、過去6か月間機能している次のコード行を持っています:
If IsNumeric(txtProductID.Text) Then
...do stuff
Else
Dim msg As String = "Error!"
End If
突然、どんなエントリを入れてもtxtProductID
(単純な数字を含む)、失敗します。私がこれに夢中になる理由はありますか?
暗闇でのショットのようなものですが、注意すべきことの 1 つは、誰かが同じクラス内に IsNumeric というプライベート メソッドを作成した可能性があることです。上記のコードが Microsoft.VisualBasic.IsNumeric() を実行していることは確かですか? カーソルを IsNumeric に置いて F12 を押すと、定義はどこを指していますか?
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 準拠の関数 ( 、 など) に固執することが常に役立つとわかってきましIsNumeric
たStr
。
うーん...私はばかです...助けてくれてありがとう、しかしどうやら私は入力を受け入れる前にフォーム全体をクリアしていたので、「」は決して「IsNumeric」として渡されません。この質問を二度と見ないでください。私は体調が悪い。
ご協力いただきありがとうございます。