Forum: Object-Pascal / Delphi-Language
Delphi
by mjustin,
15. Jun 2017
;-)
"as designed" ist eine Umschreibung für "wir müssten Teile des DCC neu designen, um diesen Effekt zu vermeiden" (wenn ich Remy Lebaus Kommentar richtig verstehe). Bei strings tritt das Problem nicht auf, DCC erzeugt für diese eine versteckte Variable.
Forum: Object-Pascal / Delphi-Language
Delphi
by mjustin,
15. Jun 2017
Die Referenzzählung wird dadurch nicht ausgehebelt sondern nur eine unnötige zusätzliche Referenzzählung vermieden. Ist also eine Optimierung.
Nur das hier darf man dann nicht: LadeDaten(TKunde.Create);
Dass dann die Referenzzählung nicht funktioniert, ist ein lang und gut bekannter Bug. (https://stackoverflow.com/a/7640979/80901)
Forum: Object-Pascal / Delphi-Language
Delphi
by mjustin,
15. Jun 2017
Das var ist nicht notwendig, man kann auch über const Value: IKunde ein existierendes (leeres) Kundenobjekt übergeben, füllen, und an den Aufrufer zurückgeben. Warum sollte man erst ein Objekt erzeugen, es per var übergeben, und in der aufgerufen Methode LeseDaten dann ein neues Objekt erzeugen, und das übergebene Objekt durch es ersetzen?
Forum: Object-Pascal / Delphi-Language
Delphi
by mjustin,
15. Jun 2017
Zwei Parameter sind zu viel :)
type
IKunde = interface
...
function LeseDaten(const KundenNummer: string): IKunde;