• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.Net Object型 空かどうか)

VB.Net Object型の空かどうかの検証方法について

このQ&Aのポイント
  • VB.Netの関数ABCにおいて、引数が空かどうかを検証する方法について説明します。
  • 現在、String.IsNullOrEmpty関数を使用して引数の空検証を行なっているが、System.InvalidCastExceptionエラーが発生してしまう。
  • 初回例外を発生させずに同じ機能を実現する方法についてアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答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

kyokotan12
質問者

お礼

Yune-Kichi さん お世話になります。 処理内で型を調べ、それに合わせて評価をする方法は大変勉強になりました。ご提示いただいた処理を糧に励んでいこうと思っております。 ありがとうございました

その他の回答 (1)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

IsNullOrEmpty は判定するオブジェクト(この場合は wCtrl)が String 型である必要があります。 変数名からすると wCtrl として渡しているものは String ではなさそうに見えますが、いったい何を渡していてそのオブジェクトがどうなっていると空になっていると見なしたいのか、補足をお願いいたします。

kyokotan12
質問者

補足

hitomura さん お世話になります。 ご指摘の通り、String以外にも Bit型以外の値が空白かNull の場合に True を返したいと思っております。 何卒よろしくお願いいたします。

関連するQ&A