
お世話になります。
環境 Windows 7 : Visual Strudio 2012
Function ABC(ByVal wCtrl As Object) As Boolean
If String.IsNullOrEmpty(wCtrl) = True Then
ABC= True
Else
ABC= False
End If
End Function
今まで上記のようなやり方で、引数が空かどうかを検証していたのですが、これを実行すると
型 'System.InvalidCastException' の初回例外が Microsoft.VisualBasic.dll で発生しました
というエラーが大量に発生します。
If String.IsNullOrEmpty(wCtrl) = True Then の部分でこれが発生しているようで
動作には問題ないようなのですが、どうにかできないものかと思っております。
初回例外を発生させないで同じ機能にするにはどうしたらよいでしょうか?
何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
As Objectである必要はあるのですか。
言語機能としてメソッドのオーバーロードがあるのですから,本質的には各型ごとにオーバーロードを用意するのがよいと思います。
そもそも,「空白」というのは文字列,つまりはStringでの話であって,一般の型に使える話ではありませんが。
' String型は特殊でString.IsNullOrWhiteSpaceを利用
Function Abc (ByVal s As String) As Boolean
Return String.IsNullOrWhiteSpace(s)
End Function
' Bit型は受け付けない
Function Abc (ByVal bAs Bit) As Boolean
Throw New InvalidOperationException()
End Function
' String/Bit型は専用のメソッドで処理,それ以外はNothingかどうかを返す
Function Abc (ByVal o As Object) As Object
If o Is String Then
Return Abc(DirectCast(o, String))
End If
If o Is Bit Then
Return Abc(DirectCast(o, Bit)
End If
Return o Is Nothing
End Function
Yune-Kichi さん お世話になります。
処理内で型を調べ、それに合わせて評価をする方法は大変勉強になりました。ご提示いただいた処理を糧に励んでいこうと思っております。
ありがとうございました
No.1
- 回答日時:
IsNullOrEmpty は判定するオブジェクト(この場合は wCtrl)が String 型である必要があります。
変数名からすると wCtrl として渡しているものは String ではなさそうに見えますが、いったい何を渡していてそのオブジェクトがどうなっていると空になっていると見なしたいのか、補足をお願いいたします。
この回答への補足
hitomura さん お世話になります。
ご指摘の通り、String以外にも Bit型以外の値が空白かNull の場合に True を返したいと思っております。
何卒よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CloseとDisposeの違い
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.net 引数で配列変数を渡す際の要素数
Visual Basic(VBA)
-
-
4
カンマの含まれる文字列の数値変換方法について
Visual Basic(VBA)
-
5
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
6
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
7
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
8
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
9
共通モジュールでDBへの接続と利用方法
Visual Basic(VBA)
-
10
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
11
VBのReturnの使い方
Visual Basic(VBA)
-
12
VB.NETで、配列をテーブルに変換して表示する。
Visual Basic(VBA)
-
13
【VB.NET】日付型の列にNULLを登録する方法について
SQL Server
-
14
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
15
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
16
VBの画面サイズについて
Visual Basic(VBA)
-
17
C#で配列が空かを判定するには?
C言語・C++・C#
-
18
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
19
SQLServer2005のSQL文での別名の取り扱い
SQL Server
-
20
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
連続する「\\」をひとつの「\\...
-
VB.Net Object型 空かどうか
-
ファイルダイアログを開いた時...
-
nullで、return出来るのはどん...
-
VBA Evaluate関数 型が一致しま...
-
時間の取得
-
0除算の例外処理ができない!!...
-
C#の捕捉されない例外処理の対...
-
【JAVA】与えられた金額を貨幣...
-
初回例外
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
例外ってIf文の中に入れますか...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
VB.Net Object型 空かどうか
-
時間の取得
-
VBA Evaluate関数 型が一致しま...
-
連続する「\\」をひとつの「\\...
-
C#の捕捉されない例外処理の対...
-
Excelでのエラー
-
ファイルダイアログを開いた時...
-
Timestamp型への変換について(J...
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
例外ってIf文の中に入れますか...
-
if文が通りません。。。
-
ブックマークレットについて
-
Javaで文字列をゼロ埋め(ゼロパ...
-
数字か文字列かを判定する関数
-
VC++におけるCStringの変換
-
JSPからのパラメータチェック
-
C# の例外処理について
おすすめ情報