Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
10. Aug 2017
Lange hatte ich es auf meiner "Demnächst lesen"-Liste, jetzt gelesen und ich musste lachen :-D
Coole Idee :thumb:
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
16. Nov 2015
Lass uns noch ein bisschen drehen :spin2:
Ein bisschen.
Das sehe ich ja voll und ganz ein. Nur nicht, warum es implizit sein muss.
Ist es explizit, kann man weiterhin alle TField.Value reinstecken. Oder IXMLNode.Value. Oder was auch immer. Was würde man dadurch verlieren?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
16. Nov 2015
Hardcast, oder gleich den passenden Typen reinstecken. Also myDatabaseField.Value. Das will man im Endeffekt doch.
Oder ist es tatsächlich, wie Dejan Vu meint, nur als eine andere Schreibweise für Variants gedacht?
class operator Explicit(const from: Variant): Nullable<T>;
class operator Implicit(const from: T): Nullable<T>;
erlaubt:
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
16. Nov 2015
Ich verstehe eins hierbei noch nicht:
Warum ist denn die Variant-Geschichte eigentlich Implicit und nicht Explicit?
Wäre Sie es, kann ich immer noch sagen
myNullableInt := myDatabaseField.Value
oder
myNullableInt := myStrangeVariant
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
13. Nov 2015
Bitter, da habe ich auf die Schnelle nicht dran gedacht.
Trotzdem macht mir myNullableInteger := 'Wurst' Angst. Ist mir neulich zum ersten mal zur Laufzeit um die Ohren geflogen und jetzt frage ich mich die ganze Zeit wie ich noch solche Stellen finden kann...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
13. Nov 2015
Würdet ihr euch denn dazu überreden lassen der Value-Property dann einen Setter zu verpassen damit man, wenn man will, zur Compile-Zeit ein bisschen Typsicherheit hat?
Wenn die Pointer-Überladung rausfällt, bekommt ein Nullable dann eine Clear()-Methode oder wie löscht man den?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
13. Nov 2015
Klar, das mit dem := nil ist natürlich viel komfortabler als irgendein Hickhack mit vielleicht TNullable<Integer>.Empty oder sowas.
Aber mit dem Variant-Gedöns kann ich mich wirklich nicht anfreunden. Die ganze Typsicherheit geht einem doch da den Bach runter. War die Intention denn von Anfang an, das mit TField-Objekten kompatibel zu machen? Wenn ja, dann wäre ein eigener Typ TFieldContent<T>...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Der schöne Günther,
13. Nov 2015
Eine Verständnisfrage zu Nullable<T> in Spring4D:
procedure test();
var
numberValue: Spring.Nullable<Integer>;
begin
numberValue := 99.0;
numberValue := TObject.Create();
end;