System.Variant

提供: Appmethod Libraries
移動先: 案内検索

Object Pascal

type Variant = { built-in type };

C++

class RTL_DELPHIRETURN Variant: public TVarData

プロパティ

種類 可視性 ソース ユニット
type
class
public
System.pas
sysvari.h
System System

説明

実行時に型を変更できる変数用に使用されます。

Variant 型は、実行時に型を変更できる変数用に使用されます。 バリアントを使用すると、柔軟性が向上しますが通常の変数よりもメモリを多く使用します。バリアントの操作は、統計的にバインドした型よりも遅くなります。 さらに、通常の変数であればコンパイル時に発見できるような間違いでも、バリアントに対する不正な操作は多くの場合実行時エラーを発生させます。 カスタムのバリアント型を作成することもできます。

デフォルトでは、Variant 変数は、レコード、集合、静的配列、ファイル、クラス、クラス参照、およびポインタを除くすべての型の値を保持できます。 言い換えると、バリアントは、構造型とポインタ型以外の型を保持できます。 バリアントはインターフェイスを保持できます。インターフェイスのメソッドとプロパティには、バリアントからアクセスできます。 バリアントは、動的配列、およびバリアント配列と呼ばれる特殊な静的配列を保持できます。 バリアントは、式や代入文で、他のバリアント、IntegerRealstring、および Boolean 値と混在させて使うことができます。コンパイラは、自動的に型変換を行います。

文字列を含むバリアントは、インデックス付けできません。

Variant 型を拡張して、任意の値を保持できるカスタム バリアントを定義することができます。 たとえば、インデックス付けできるバリアント文字列型、あるいは特定のクラス参照、レコード型、または静的配列を保持できるバリアント文字列型を定義できます。 カスタム バリアント型は、TCustomVariantType クラスの下位クラスを作成することによって定義します。

Variant は、16 バイトのメモリを使用し、型コード、および型コードに指定した型の値または値へのポインタから構成されます。 すべてのバリアントは、作成時に特別な値 Unassigned で初期化されます。 特別な値 NULL は、不明なデータまたは欠落したデータを示します。

関連項目