Ein Nullable<T>
soll eben nicht alles beinhalten, sondern typsicher einen Wert vom Typ T
oder eben nichts.
Ach so. Und es geht darum, das man einem typsicheren
Nullable<Integer>
auch einen String zuweisen kann, ohne das es knallt (also eher 'ein bisschen typsicher'). Und das der Wert dann 0 ist.
Na ja. Ein etwas besseres 'VarToInt' (aka convert) tut's ja auch. Also: Ich weise einem Variant zu, was ich will und erst beim Auslesen interpretiere ich, was da drin steht. Hmm. Vom Verhalten sehe ich jetzt nicht so den Unterschied zu normalen Variants, aber egal.
Nach
meinem Verständnis (und auch
meiner Implementierung) kann einem
Nullable<Integer>
eben
kein string
zugewiesen werden.
Mein Nullable<T>
hat auch
keinen impliziten Cast von einem
Variant
, denn nach
meinem Verständnis
soll ein
Nullable<T>
eben
nicht alles beinhalten, sondern
typsicher den angegebenen Typen
T
oder eben nichts.
Genau das steht auch schon in
meinen Beiträgen hier ...
Und wie immer ist dieses Konstrukt einfach nur zum Vereinfachen gedacht:
Delphi-Quellcode:
var
a,b,c : Nullable<Integer>;
d : Integer;
begin
a := Nullable.Null;
b := 42;
c := a+b; // c => Null
d := a.ValueOrDefault() + b.ValueOrDefault(); // d => 42
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)