Thema: Delphi darf man das?

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: darf man das?

  Alt 5. Nov 2009, 00:40
Was ich davon halte: Gornix Gerade Enums und Sets sind dazu gedacht die Lesbarkeit des Codes zu verbessern, und du schaffst es damit diese sogar noch zu verschlechtern. Daher: Völlig entgegen dem Sinne des Erfinders, und entgegen jeglicher Standards. Immer Käse.

Warum das gut gehen kann: Sets sind intern Bit-Felder, ganz ähnlich den diversen aus 2er-Potenzen zusammengebauten Flags in z.B. der WinAPI. Jedem Element ist nun eine Bitposition zugeordnet, ist dieses Bit 1 ist das korrespondierende Element in der Menge (im Set), sonst nicht. Daher kannst du prinzipiell auch einfach von hinten durch die Brust einen Wert an die Speicherstelle kritzeln, und reinterpretiert ist das dann eine Untermenge des Sets. ABER: Welches Element des Enums an welches Bit gekoppelt wird obliegt allein dem Compiler. Der wird sich wahrscheinlich definiert verhalten, jedoch muss das nicht für alle anderen Versionen das selbe Verhalten sein. Zudem kann man Enums auch Werte per Hand verpassen, wo dann auch erstmal fraglich ist wie diese in einem Set gehandhabt werden. Auch bin ich mir grad unsicher, ob Sets immer einem Longword entsprechen.

Fazit: Auch wenn es zunächst einmal geht, tu dir selbst und allen die den Source jemals mal lesen müssen den gefallen und mach solche Vergewaltigungn nicht. Aus technischer Sicht weil es eben unsicher sein kann, aber viel viel mehr weil es dem Sinn der Sache völlig entgegen spricht. Ich denke was du da geposted hast wird nur ein Beispiel sein, ich kann mir gut vorstellen, dass sich für den eigentlichen Zweck deutlich passendere Strukturen finden ließen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat