Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#16

AW: Fluent Design und Records

  Alt 24. Aug 2019, 17:17
Ich war vorhin wohl doch zu voreilig: Es funktioniert nicht ganz ohne Dereferenzierung, zumindest nicht die implizite Zuweisung. Will ich das Ergebnis nach einem Implicit-Operator direkt einem String zuweisen, dann geht es nur so:

Delphi-Quellcode:
lDummy := hsStr('dummy').CopyFromChar('-').CopyToChar('#')^; // funktioniert mit dem abschließenden ^
lDummy := hsStr('dummy').CopyFromChar('-').CopyToChar('#'); // funktioniert NICHT ohne das abschließende ^
hmmm
Dass man den ^ überhaupt manchmal weglassen darf, ist eh schon eine Krücke. Wo es dann zu uneindeutig wird, ist es halt ganz verboten.

Allerdings habe ich inzwischen auch die Geschwindigkeit der beiden Konstrukte getestet, also einmal mit einem Objekt/Interface und einmal mit einem Record und die Record-Variante ist bei sonst völlig identischem Code fast doppelt so schnell.
Jo. Ich vermute mal, weil keine überflüssigen Speichereservierungen vorgenommen werden. Bei einem Interface kämen dann auch noch die virtuelle Methodenauflösung hinzu, wenn ich mich nicht täusche.
Uli Gerhardt
  Mit Zitat antworten Zitat