System.Variants.Null

Aus Appmethod Libraries
Wechseln zu: Navigation, Suche

Object Pascal

function Null: Variant;

C++

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

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

Beschreibung

Gibt eine Null-Variante zurück.

Mit Null rufen Sie eine Null-Variante ab, die für unbekannte oder fehlende Daten verwendet werden kann. Null-Varianten können Variablen in einer Anwendung zugewiesen werden, die einen Nullwert enthalten müssen. Wenn Sie einer Variante Null zuweisen, führt dies nicht zu einem Fehler. Jede Funktion mit einem Varianten-Rückgabewert kann auch den Wert Null zurückgeben.

Wenn Sie Null einer Variablen eines beliebigen anderen Typs als Variant zuweisen, führt dies entweder zu einem Compilerfehler oder zu einer EVariantTypeMismatch-Exception. Im folgenden Quelltext kann beispielsweise die Zuweisung der Null-Variante v zur Variante q durchgeführt werden, während die Konvertierung der Variante v mit dem Wert Null in dem Integer-Rückgabewert der Funktion Test eine Exception auslöst.

function Test(v: Variant): Integer;

var q: Variant; msg: string; begin q := v; { ist in Ordnung, weil q eine Variante ist } if VarIsNull(q) then msg := 'q ist eine Null-Variante' else msg := 'q ist keine Null-Variante'; ShowMessage(msg);

Result := v; { dies löst eine Exception aus!!!}

end;

procedure TForm1.Button1Click(Sender: TObject);

begin Test(Null);

end;

int Test(Variant v)

{ Variant q = v; // ist in Ordnung, weil q eine Variante ist AnsiString msg; if (VarIsNull(q)) msg = "q ist eine Null-Variante"; else msg = "q ist keine Null-Variante"; ShowMessage(msg);

return v; // dies löst eine Exception aus!!!

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Test(Null());

}

Außer bei Vergleichen, deren Resultat immer ein boolescher Wert ist, ergeben Ausdrücke, die Null-Varianten enthalten, immer Null-Varianten.

Anmerkung:  Die von der Funktion Null zurückgegebene Null-Variante unterscheidet sich von der nil-Konstante in Object Pascal und dem NULL-Makro in C++. Weder nil noch NULL ist eine Variante. Die nil-Konstante ist eine Objektreferenz, die auf kein Objekt verweist. Das NULL-Makro ist ein Zeiger, der auf kein Objekt oder keinen Wert zeigt.

Siehe auch