Thema: Delphi Sets durchlaufen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#10

Re: Sets durchlaufen

  Alt 22. Apr 2010, 13:02
Zitat von RSE:
Von welchem Typ ist dann eigentlich ['a', 'ß', '0']? Geht das ab D2009 auch nicht mehr?
Set of Char wird automatisch auf Set of AnsiChar gekürzt.

['a', 'ß', '0'] bleibt unter Delphi 2009/2010 ein AnsiCharSet, bzw. es gibt einen Typen dafür Delphi-Referenz durchsuchenTSysCharSet.

Der ShortString, String[x] und das CharSet bleiben also weiterhin nur ANSI.

(darum auch der in Beitrag #6 verlinkte Code)

Zitat von RSE:
Fehler: Der linken Seite kann nichts zugewiesen werden
Der Linken seite konnte hier noch nie was zugewiesen werden, nur daß die alten Kompiler es noch nicht gesagt hatten.

Dieses Verhalten wird auch immer mal wieder hier im Forum genannt.
Es wird entweder eine Getter oder eine Setter aufgerufen.
Neu.MyKeys.xxx ruft den Getter auf, damit weiter auf .Keys zugegriffen werden kann.

Delphi-Quellcode:
Neu.MyKeys.Keys := [];

// wird also zu

DemphiinterneTemporäreVariable := Neu.MyKeys; // bzw. Neu.GetMyKeys
DemphiinterneTemporäreVariable.Keys := [];
Tja, und nun rate mal, was mit dem zugewiesenem Wert passiert?
Genau ... nix, denn die TempVar wird irgendwann wieder gelöscht und im Property ändert sich nix.
Und darum warnt jetzt Delphi davor.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat