Thema: Delphi Spring4D: Nullables

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#23

AW: Spring4D: Nullables

  Alt 16. Nov 2015, 10:49
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)

Geändert von Sir Rufo (16. Nov 2015 um 10:54 Uhr)
  Mit Zitat antworten Zitat