![]() |
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Zitat:
|
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Kann man diese Funktion auch in mein aktuell bestehendes Konzept einbauen?
Delphi-Quellcode:
unit enum_functions;
uses ; type TEnumFunctions = class private // public // meine Funktionen end; implementation // meine Funktionen end;
Delphi-Quellcode:
var _enumFunctions: TEnumFunctions;
// Aufruf meiner Funktionen mit _enumFunctions.Funktionsname(); |
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Zitat:
Delphi-Quellcode:
aufrufen kannst.
S := TEnumHelper<TMyEnum>.GetName(EnumValue)
In deiner bestehender Klasse müsstest du dann die Funktion selbst mit Generics ausrüsten, anstelle der ganzen Klasse (sofern die anderen Helper nicht auch typisiert werden sollen). Generell würde ich dir allerdings raten deine
Delphi-Quellcode:
mit
TEnumFunctions
Delphi-Quellcode:
bzw.
class function Bla: X; static
Delphi-Quellcode:
auszurüsten statt der normalen Methoden. Dann benötigst du auch dafür keine Instanz mehr, was die Aufrufe zum einen weniger umständlich macht und dir später im Kompilat sogar ein klein wenig (nagut nur sehr sehr wenig - aber immerhin :stupid:) Performance-Overhead einspart.
class procedure Bla; static
Letzter Tipp natürlich unter dem Vorbehalt, dass du wirklich keine Instanz (also z.b. Zugriff auf Klassen-Felder, persistenter State, etc.) benötigst. |
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Zitat:
Nur ich weiß leider nicht wie das geht :( Zitat:
Edit: habs glaube ich
Delphi-Quellcode:
... bin gerade schon alles fleißig am umstellen, damit ich die Instanzen-"Variable" loswerde.
type
TEnumFunctions = class private // public class function TestFunction(sInput: string): string; static; end; implementation class function TEnumFunctions.TestFunction(sInput: string): string; begin Result := sInput + ' - ZUSATZ'; end; // Aufruf ShowMessage(TEnumFunctions.TestFunction('123')); Sollte dann lieber folgendes bleiben...
Delphi-Quellcode:
Oder besser
type
TEnumFunctions = class
Delphi-Quellcode:
?
type
TEnumFunctions = record |
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Zitat:
|
AW: Enum in String mehrere Overloaded Funktionen zu einer einzigen zusammenfassen?
Hi,
es gibt noch eine andere Möglichkeit die auch mit nicht Enums kein Problem hätte: TValue. Das nutze ich immer.
Delphi-Quellcode:
...
uses System.RTTI ... class function TEnumHelper<TEnum>.GetName(Value: TEnum): String; begin Result := TValue.From<TEnum>(Value).ToString; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 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