AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generisches ToString für Enumerations

Ein Thema von s.h.a.r.k · begonnen am 30. Apr 2011 · letzter Beitrag vom 3. Mai 2011
 
Benutzerbild von s.h.a.r.k
s.h.a.r.k

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

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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz