Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Nein, die Verwendung eines Arrays anstelle einer Enum ist ein schlechter Entwurf.
Beispiel: Stellen Sie sich vor, Sie haben einen String-Wert. Und die Aufgabe besteht darin, herauszufinden, ob diese Zeichenkette einem der Enum-Elementnamen entspricht/enthält (EnumToString()).
Wie würden Sie dies lösen?
Können Sie eine reale Situation angeben, in der so etwas benötigt wird? Enum sind nur Konstanten, warum wollen Sie eine Zeichenfolge innerhalb der Elemente zu identifizieren?
Wenn Sie eine Absicherungsstruktur aufbauen wollen.
Aber dann vergleiche ich einfach alles, um den tatsächlichen Wert zu ermitteln.
Können Sie eine reale Situation, wo so etwas benötigt wird? Enum sind nur Konstanten, warum wollen Sie eine Zeichenfolge innerhalb der Elemente zu identifizieren?
Meine Frage war nur ein Beispiel. Der Themenstarter hat ein anderes beschrieben. Ich verstehe, dass sie für Sie nicht "real" genug sind und jeder Workarounds verwenden kann, aber das macht diese Aufgaben nicht unrealistisch für diejenigen, die sie lösen.
Und wir stecken hier immer noch fest... Eine Lösung kann nur für ein wirkliches Problem gefunden werden. Kennen Sie das wirkliche Problem der OP? Ich kenne es nicht.
Ich kenne VIELE reale Situationen, in denen dies hilfreich wäre. Deshalb BENUTZE ich den Ansatz mit Arrays, weil es keinen anderen Weg gibt.
Beispiel: Sie haben eine Aufzählung/Liste von etwas (sagen wir GUI-Sprachoptionen für Ihr Programm), und Sie möchten dafür Optionsfelder erstellen, aus denen der Benutzer wählen kann. Sie WOLLEN den Code der Schaltflächen später NICHT ändern, wenn Sie die Anzahl der Elemente in Ihrer Aufzählung ändern.
Und Sie müssen den Enum-Wert aus dem Namen der Schaltfläche abrufen, um ihn auf Ihr Programm anzuwenden. Sie WOLLEN NICHT für JEDES Element in Ihrer Aufzählung Code schreiben, sondern Sie wollen eine einfache Lösung innerhalb eines Zyklus
Dies kann nicht nur auf Sprachen, sondern auch auf VIELE andere Dinge angewendet werden:
Es gibt viele Möglichkeiten, die gleichen Dinge zu tun.
Nun, ich kenne zumindest eine, denn ich benutze sie.
Und das macht die Funktion, über die wir sprechen, nicht nutzlos. Man kann einen Nagel mit einem Stein einschlagen, aber das bedeutet nicht, dass man es immer tun sollte.
Ich kenne VIELE reale Situationen, in denen dies hilfreich wäre. Deshalb BENUTZE ich den Ansatz mit Arrays, weil es keinen anderen Weg gibt.
1. Sie haben eine Aufzählung/Liste von etwas (sagen wir GUI-Sprachoptionen für Ihr Programm), und Sie möchten dafür Optionsfelder erstellen, aus denen der Benutzer wählen kann. Sie WOLLEN den Code der Schaltflächen später NICHT ändern, wenn Sie die Anzahl der Elemente in Ihrer Aufzählung ändern.
Und Sie müssen den Enum-Wert aus dem Namen der Schaltfläche abrufen, um Ihr Programm anzuwenden. Sie WOLLEN NICHT für JEDES Element in Ihrer Aufzählung Code schreiben, sondern Sie wollen eine einfache Lösung innerhalb eines Zyklus
Dies kann nicht nur auf Sprachen, sondern auch auf VIELE andere Dinge angewendet werden:
Ich weiß, Andrey. Ihr Beispiel braucht eine dynamische Lösung, also verwenden Sie nicht enum, sondern array. Wenn Sie enum (statisch) für etwas verwenden wollen, das dynamisch ist (Ihr Beispiel), ist das ein schlechtes Design. Es scheint mir, dass wir dasselbe sagen.
Wir können dem OP nicht weiterhelfen, da er nicht sagt, warum er eigentlich eine Schleife braucht.
Nun, ich kenne zumindest eine, denn ich benutze sie.
Und das macht die Funktion, über die wir sprechen, nicht nutzlos. Man kann einen Nagel mit einem Stein einschlagen, aber das bedeutet nicht, dass man es immer tun sollte.
Sogar Java hatte lange Zeit keinen Enum-Typ, und da Java selten reine Arrays verwendet, gab es viele andere OO-Wege, um eine Liste von Werten zu iterieren. Ich würde es nicht als einen Stein und einen Nagel bezeichnen.