System.Variants.Null

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

Delphi

function Null: Variant;

C++

extern DELPHI_PACKAGE System::Variant __fastcall Null(void);

プロパティ

種類 可視性 ソース ユニット
function public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

説明

Null バリアントを返します。

Null を使用すると、データが不明または見つからないことを示す Null バリアントを取得することができます。Null バリアントは、アプリケーション中のバリアント変数が NULL 値を持たなければならないときに、その変数に代入することができます。バリアント変数に Null を代入してもエラーにはなりません。また、戻り値がバリアントである関数は Null を返すことができます。

NullVariant 以外の型の変数に代入すると、コンパイル エラーになるか、EVariantTypeMismatch 例外が発生します。たとえば次のコードで、Null バリアントである v をバリアント q に代入する処理は成功しますが、現在 Null であるバリアント v を Test 関数の戻り値である整数に変換しようとすると例外が発生します。

function Test(v: Variant): Integer;

var q: Variant; msg: string; begin q := v; { q はバリアントなので問題ない } if VarIsNull(q) then msg := 'q is a null variant' else msg := 'q is not a null variant'; ShowMessage(msg);

Result := v; { ここで例外が発生する!!!}

end;

procedure TForm1.Button1Click(Sender: TObject);

begin Test(Null);

end;

int Test(Variant v)

{ Variant q = v; // q はバリアントなので問題ない AnsiString msg; if (VarIsNull(q)) msg = "q is a null variant"; else msg = "q is not a null variant"; ShowMessage(msg);

return v; // ここで例外が発生する!!!

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Test(Null());

}

必ず Boolean 値が返される比較の場合を除いて、Null バリアントを使用した式の結果は常に Null バリアントになります。

メモ:  Null 関数から返される Null バリアントは、Delphi コードにおける nil 定数や C++ コードにおける NULL マクロとは異なります。nil も NULL もバリアントではありません。nil 定数は、実際のオブジェクトを何も参照していないオブジェクト参照です。NULL マクロは、実際のオブジェクトや値を何も参照していないポインタです。

関連項目