Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#20

AW: Generisches ToString für Enumerations

  Alt 3. Mai 2011, 19:40
Delphi-Quellcode:
TApEnumerations = class
public
  class function EnumToStr<T>(const Value: T): String; static;
  class function StrToEnum<T>(const Value: String): T; static;

  class function SetToStr<T>(const Value: T): String; static;
  class function StrToSet<T>(const Value: String): T; static;
end;
So, habe das ganze nun überarbeitet und um die Methoden SetToStr<T>() und StrToSet<T>() erweitert. Zudem habe ich hier nicht mehr den Anspruch die neue RTTI zu nutzen, da diese ja nur die alte RTTI-Methoden kapselt und so etwas langsamer ist -- klar, man kann hier drüber streiten, aber es soll hier um die Funktionalität gehen

Weiterhin habe ich den record durch class ersetzt, da ich wohl das Argument verstanden habe, warum ich hier eigentlich class verwenden sollte.

In diesem Sinne, wettert drauf los

PS: Ich sollte noch sagen, dass StrToSet<T>() als Typen den set-Typen erwartet (z.B. TTestEnumSet) und als Parameter eine komma-separierte Aufzählung, die in eckigen Klammer platziert ist -- Beispiel: '[taOne, taTwo, taThree]' . (ist quasi die Umkehrfunktion von SetToStr<T> -- wer hätte es gedacht )

-- Edit: Habe das ganze nun mal in eine Unit gepackt und in den Anhang gesteckt. Dadurch wird der Beitrag dezent übersichtlicher.
Angehängte Dateien
Dateityp: pas ApEnumerations.pas (3,7 KB, 38x aufgerufen)
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k ( 4. Mai 2011 um 16:06 Uhr)
  Mit Zitat antworten Zitat