![]() |
Mehrere Aufzählungstypen mit gleichen Membern
Hallo,
warum ist es nicht möglich, mehrere Aufzählungstypen zu deklarieren, die Member mit glechen Namen besitzen? Z. B. so:
Delphi-Quellcode:
Sowohl bei None als auch bei Center mackert Delphi. Dabei sollte es doch egal sein, da ich die Member mit dem qualifizierten Namen eindeutig identifizieren könnte :gruebel: .
type
HorizontalAlignment = (None, Left, Center, Right, Block); VerticalAlignment = (None, Top, Center, Bottom); Gibt es hierfür eine Lösung? Gruß xaromz |
Re: Mehrere Aufzählungstypen mit gleichen Membern
Hallo,
ich arbeite nicht mit .NET, aber None und Center - enum values, quasi implizite Konstanten - im selben Namespace (Unit)? Wie sieht da der qualifizierte Name aus? Grüße vom marabu |
Re: Mehrere Aufzählungstypen mit gleichen Membern
Hallo,
Zitat:
Delphi-Quellcode:
Wobei mir das Case-Template leider folgenden Code präsentiert:
if HAlign = HorizontalAlignment.Center then
begin // Tu was end;
Delphi-Quellcode:
Beise Varianten funktionieren.
var
HAlign: HorizontalAlignment; begin case HAlign of Unit1.None: ; Unit1.Left: ; Unit1.Center: ; Unit1.Right: ; end; end; Da frage ich mich, welches ist jetzt der "echte" Name. In .Net wird das eigentlich nicht mit dem Namespace genutzt, sondern mit dem Aufzählungstypen (also HorizontalAlignment.Center). Gruß xaromz |
Re: Mehrere Aufzählungstypen mit gleichen Membern
Zitat:
Delphi generiert dir für jeden Wert deines Enum ene globale Kontante. Die wiederum werden in Delphi.Net so umgesetzt, dass du pro Unit eine Klasse hast, in der sie als Konstante (oder statische Felder :gruebel: ) deklariert sind. Wenn du also zwei Enums in der gleichen Unit definiert, die Überschneidungen in ihren Weten haben, würde ich davon ausgehen, dass er dir mit Anlauf ins Gesicht springt... Vllt kann man ja mit Delphi.Net 2007 .Net Apps schreiben ohne ständig wieder in die Delphi32-Welt gerissen zu werden. ;) |
Re: Mehrere Aufzählungstypen mit gleichen Membern
Hallo,
ich hatte gehofft, dass Du hier antwortest. Zitat:
Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 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 by Thomas Breitkreuz