- - PR -
型変換できるかどうかの確認
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-07 22:53
えっ。。 as 演算子は参照型に使うものでは。。 int i = string as int は無理なのではないでしょうか。 #私の勘違いかな。 --追加-- 今回の問題のように、stringに保持している値が数値に変換可能かどうかを判定したいということなら、きくちゃんさんの方法やtry〜catchで書くのが個人的には好きです。 _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2005-04-07 22:58 ] | ||||||||
|
投稿日時: 2005-04-07 23:05
そうでした・・・。 うっかりしてました。 | ||||||||
|
投稿日時: 2005-04-08 11:23
こんにちは。
試す時間がないので推測ですが、 MSDNの例で下記のような記述がありました。 ---------------------------------------- MyVar = "53" ' Assign value. MyCheck = IsNumeric(MyVar) ' Returns True. ' ... MyVar = "459.95" ' Assign value. MyCheck = IsNumeric(MyVar) ' Returns True. ---------------------------------------- 上の場合(53)にはいいんですが、 下の場合(459.95)の場合のものをIntegerに変換すると切り捨てられませんか?? (または落ちますかね??) 小数点が絶対に入ってこなければIsNumericでもいいと思いますが。。。 ちょっと危険かもしれないですね〜 それだったらtry,catchのほうがいいかもです。 | ||||||||
|
投稿日時: 2005-04-08 11:37
正規表現でもチェックできますよね。
ここにも簡単なサンプル載ってます。 http://www.microsoft.com/japan/msdn/security/guidance/secmod83.mspx | ||||||||
|
投稿日時: 2005-04-08 12:08
駄目。 試してみたら、なんか常に True を返すような気が…。 | ||||||||
|
投稿日時: 2005-04-08 13:29
諸農です。
確認してみました。 このIsValidの挙動は私にとっては想定外です。
こっちのコードであればちゃんと例外が出るのに。。。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2005-04-08 21:57
"100"はStringで、Integerではありませんから。っつうか、ちゃんと説明文にリンクさせているんだから読もうよ。。。
TypeOfで検査できるのは、継承か実装の関係があるときだけです。 で、まゆりんさんの“正解”の後にわざと出したのは、タイトルが「型変換できるかどうかの確認」だからです。内容に「stringをIntegerに変換したい」とあるので、タイトルと内容が一致していません。 で、今回の場合、文字列から数値は「型変換」ではありません。「文字列の解析」です。なので、「型変換」で検索しても出てきません。 IsNumericは「数値 ( 分析 OR 認識 OR 解析 OR 変換 ) できるか」で出てきました。 # MSDN Onlineも同じ式で検索できたと思うけど、出来ない?? _________________ | ||||||||
|
投稿日時: 2005-04-08 22:00
内部でオーバーロードしている、もうひとつのメソッドをコールしていれば、常にTrueになりそう。。。 |