オブジェクト変数の値 (Visual Basic)
Object データ型の変数は、任意の型のデータを参照できます。 Object
変数に格納した値はメモリ内のどこかに保持されますが、変数自体にはデータへのポインターが保持されます。
オブジェクト分類子関数
Visual Basic には、次の表に示すように、Object
変数の参照先に関する情報を返す関数が用意されています。
関数 | オブジェクト変数が参照している場合に True を返す |
---|---|
IsArray | 単一の値ではなく、値の配列 |
IsDate | Date データ型値、または日付と時刻の値として解釈できる文字列 |
IsDBNull | 欠落しているデータまたは存在しないデータを表す DBNull 型のオブジェクト |
IsError | Exception から派生する例外オブジェクト |
IsNothing | Nothing、つまり、現在、変数に割り当てられているオブジェクトがない |
IsNumeric | 数値、または数値として解釈できる文字列 |
IsReference | 参照型 (文字列、配列、デリゲート、またはクラス型など) |
これらの関数を使用すると、操作やプロシージャに無効な値が送信されるのを回避できます。
TypeOf 演算子
また、TypeOf 演算子を使用すると、オブジェクト変数が現在、特定のデータ型を参照しているかどうかを判断することもできます。 オペランドのランタイム型が指定された型から派生しているか、または指定された型を実装している場合、TypeOf
...Is
式の結果は True
になります。
次の例では、値型と参照型を参照するオブジェクト変数に対して TypeOf
を使用しています。
' The following statement puts a value type (Integer) in an Object variable.
Dim num As Object = 10
' The following statement puts a reference type (Form) in an Object variable.
Dim frm As Object = New Form()
If TypeOf num Is Long Then Debug.WriteLine("num is Long")
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")
If TypeOf num Is Short Then Debug.WriteLine("num is Short")
If TypeOf num Is Object Then Debug.WriteLine("num is Object")
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")
上記の例では、次の行が [デバッグ] ウィンドウに書き込まれます。
num is Integer
num is Object
frm is Form
frm is Object
オブジェクト変数 num
は Integer
型のデータを参照し、frm
はクラス Form のオブジェクトを参照します。
オブジェクトの配列
Object
変数の配列を宣言して使用することができます。 これは、さまざまなデータ型とオブジェクト クラスを処理する必要がある場合に便利です。 配列内のすべての要素が、宣言されたデータ型と同じである必要があります。 このデータ型を Object
として宣言すると、オブジェクトとクラス インスタンスを配列内の他のデータ型と共に格納できます。
関連項目
.NET