System.Variant

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

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 クラスの下位クラスを作成することによって定義します。

32 ビット プラットフォームでは、Variant はメモリの 16 バイトを占めます。64 ビット プラットフォームでは、Variant は 24 バイト レコードです。バリアント レコードは、型コードによって指定された型の、型コードと値または値へのポインタで構成されます。 「バリアント型の内部表現」を参照してください。 すべてのバリアントは、作成時に特別な値 Unassigned で初期化されます。 特別な値 Null は、不明なデータまたは欠落したデータを示します。

関連項目

コード サンプル