Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
1. Mai 2011
Ihr redet aneinander vorbei. Bei TValue handelt es sich um einen Wertetypen. Bei deinem record nicht, denn er hat keinen State sondern nur 2 Methoden. Und dafür kann man auch ohne Probleme eine Klasse benutzen, weil man für die Benutzung von class methods nix instanzieren muss. Aber wie ich bereits sagte, spielt es für diesen konkreten Fall (Containertyp für parametriesierte Methoden) keine...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
30. Apr 2011
Ich kann nicht hellsehen, aber da ich einige der jüngsten Neuentwicklungen seit Delphi 2009 kenne, würde ich vermuten, dass er sich das von den Jungs bei Embarcadero abgeschaut hat. Die pflegen das nämlich auch (z.B. IOUtils.pas). Soll nicht heißen, dass ich das sonderlich gut finde. Ich finde es im Hinblick auf Testbarkeit (Stichwort: Mocks) eher ziemlich schäbig. Leider tun dem class methods...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
30. Apr 2011
Wo ist der Unterschied einer statischen Klasse oder einem Rekord in diesem Fall?
Delphi unterstützt nämlich keine Typenparameter in einfachen Routinen.
Hier stimme ich dir vollstens zu, habe ich auch vorhin nicht mehr dran gedacht, sonst hätt ich es erwähnt ;)
Dennoch kleine Korrektur: TValue.From<T>(Value).ToString denn AsString versucht, den Typen in einen string umzuwandeln, das wird...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
30. Apr 2011
Du solltest die Größe deines Enum Typens überprüfen, der muss nämlich nicht immer 1 Byte sein.
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
30. Apr 2011
In der Logging Bibliothek, die wir in der Firma nutzen (recht bekanntes kommerzielles Produkt) ist das so gelöst, dass man bei LogEnum den Ordinalwert und den TypInfo übergibt. Da ist allerdings auch nix mit Generics.