Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
30. Dez 2019
Meine Enums haben keine Lücken, da ich diese Zuweisung 1, 2, 3 nicht benutze.
function TEnumUtils.isDefined<T>(MyValue: T): Boolean;
begin
Result := not((Ord(MyValue) < 0) or (Ord(MyValue) > Ord(High(T))));
end;
scheint ohnehin nicht zu funktionieren leider. Enums sind so ein Thema bei mir.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
30. Dez 2019
Danke für die Erklärung. Sowas in der Art dachte ich mir schon.
Wäre hier also eine einfache Funktion besser?
function TEnumUtils.isDefined<T>(MyValue: T): Boolean;
begin
Result := not((Ord(MyValue) < 0) or (Ord(MyValue) > Ord(High(T))));
end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
30. Dez 2019
Gibt es ein Pendant von System.Enum.IsDefined() auch für nicht-net-Projekte?
Ich möchte meinen Code verkürzen und da würde mir IsDefined etwas bei helfen.
if (Ord(MyValue) < 0) or (Ord(MyValue) > Ord(High(TMyEnum))) then
Da da oben könnte ich auch in eine Funktion packen. Aber vielleicht gibt es j schon was Fertiges.