System.Variants.Null

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function Null: Variant;

C++

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

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

Description

Renvoie un variant Null.

Utilisez Null pour obtenir un variant Null pouvant indiquer une valeur inconnue ou absente. Les variants Null peuvent être assignés aux variables variant d'une application qui doivent contenir une valeur Null. Affecter Null à une variable variant n'entraîne pas d'erreur et Null peut être renvoyée depuis toute fonction dont la valeur de renvoi est un Variant.

Affecter Null à une variable d'un type autre que Variant entraîne une erreur de compilation ou déclenche une exception EVariantTypeMismatch. Par exemple, dans le code suivant, l'affectation de v, le variant Null, au variant q réussit, alors que la conversion du variant v, qui vaut maintenant Null, dans le type entier de la valeur renvoyée par la fonction Test, déclenche une exception.

function Test(v: Variant): Integer;

var q: Variant; msg: string; begin q := v; { c'est ok puisque q est un variant } if VarIsNull(q) then msg := 'q est un variant null' else msg := 'q nest pas un variant null' ShowMessage(msg);

Result := v; { ceci déclenche une exception!!!}

end;

procedure TForm1.Button1Click(Sender: TObject);

begin Test(Null);

end;

int Test(Variant v)

{ Variant q = v; // c'est ok puisque q est un variant AnsiString msg; if (VarIsNull(q)) msg = "q est un variant null"; else msg = "q n'est pas un variant null"; ShowMessage(msg);

return v; // cela déclenche une exception!

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Test(Null());

}

Excepté pour les comparaisons, qui donnent toujours des valeurs booléennes, les expressions impliquant les variants Null donnent toujours des variants Null.

Remarque :  Le variant Null renvoyé par la fonction Null est différent de la constante nil dans le code Delphi et de la macro NULL dans le code C++. nil et NULL ne sont pas des variants. La constante nil est une référence d'objet qui ne fait pas référence à un objet effectif. La macro NULL est un pointeur qui ne fait pas référence à une valeur ou un objet effectif.

Voir aussi