Seite 2 von 2
Verfasst: 10.07.2009 17:42
von marco2007
@KG: Wozu der Extra-Aufwand?
Verfasst: 10.07.2009 17:57
von Kaeru Gaman
weil eine Schleife auf Konstanten einfach eine "fehlerhafte" Verwendung von Konstanten ist.
Konstanten benutzt man, damit der Wert dahinter keine Rolle spielt.
Enumerations verwendet man, damit die Konstanten keine Lücken haben und man sich nicht um die Reihenfolge kümmern muss.
nun von einer Konstanten zu einer Anderen eine Schleife zu verwenden,
die darauf fußt dass die Werte zwischendrin fortlaufend sind und auch genau die Konstanten sind die man meint,
führt die anfängliche Verwendung der Konstanten überhaupt ad Absurdum.
... es ist also genaugenommen kein "Extra-Aufwand", sondern die korrekte Vorgehensweise.
Natürlich kann man eine Bierflasche mit einem Mülleimer, einer Gartenhacke, oder mit einer zweiten Bierflasche öffnen,
aber das heißt nicht dass man es so machen soll, oder gar damit werben dass man es tut.
Verfasst: 10.07.2009 19:38
von marco2007
...wenn man`s richtig anwendet, sehe ich kein Problem bei Verwendung von Konstanten....aber egal, ich denke, ich weiß Du meinst.
Gab`s da nicht schon mal ein Diskussion (ev. im englischen Forum)?
Verfasst: 10.07.2009 19:51
von AND51
> nun von einer Konstanten zu einer Anderen eine Schleife zu verwenden
Meinst du damit meine Schleife mit
#PB_Compiler_EnumerationValue? Nun der Vorteil dieser liegt doch auf der Hand:
Es werden alle
TextGadget()s gefärbt. Auch jene, die nicht zwischen
#start_enumeration und
#end_enumeration stehen. Diese zwei Konstanten sind damit überflüssig, man muss nicht darauf achten, dass
TextGadget()s zwangsweise zwischen diesen Konstanten stehen und es funktioniert auch über mehrere Includes hinweg, in denen evtl. auch Enumerationen auftreten können.
Gerade, dass mein Code auch mt Lücken umgehen kann (1, 2, 3, 5, 17, 18, ...) ist ja ein bequemer Vorteil.
Wie dem auch sei, es war lediglich ein weiterer Denkanstoß.
> Natürlich kann man eine Bierflasche mit einem Mülleimer, einer Gartenhacke, oder mit einer zweiten Bierflasche öffnen
Hast du es denn schon mal mit einem
Mülleimer, einer
Hacke oder einer
Flasche probiert?
Die Idee mit dem Autogurt find ich geil...
Verfasst: 10.07.2009 20:41
von Kaeru Gaman
ich meine generell die Verwendung von Konstanten-Zielwerten durch eine Schleife.
deine Herangehensweise hat dabei noch den zusätzlichen Nachteil, dass du sämtliche Gadgets ansprichst,
ein Hinzufügen von Objekten innerhalb eines Includes durch Fortsetzen der Enumeration
(wozu die Konstante _EnumerationValue eigentlich da ist)
ist überhaupt nicht mehr möglich, auslassen/überspringen von Gadgets auch nicht.
> ...wenn man`s richtig anwendet
meiner Ansicht nach ist schon generell dieser Ansatz eine falsche Anwendung.
wenn man Objekte mit einer Schleife ansteuern will, rückspeichert man ihre IDs.
wenn man sie als Einzelobjekte mit Namen ansprechen will, nimmt man Konstanten.
Man könnte noch einen Hashtable verwenden, um die IDs namen zuordnen zu können,
aber dann könnte man auch die Indizes eines Arrays per Konstanten ansprechen.
Also, warum so einen unsinnigen Aufwand treiben,
um die Werte von Konstanten zusätzlich wissen zu müssen, wofür sie nie gedacht waren,
anstatt gleich ein Array nehmen, und die fraglichen Gadgets per #PB_Any erzeugen?