Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: TObject kein ordinaler Typ?

  Alt 20. Jan 2010, 13:55
Hi himitsu,

ich möchte mal auf deinen Eingangspost eingehen. Dazu ersetze ich die Variablen durch ihre Typbezeichnungen. Dadurch wird der Code zwar syntaktisch falsch, aber vielleicht fällt unseren Spezialisten dann auf, das sie mit ihrer Diskussion über Mengen nicht gerade zur Aufhellung dieses Delphi-Fehlers(?) beigetragen haben:

If Integer in [Integer, Integer, Integer] Then ... Beide Seiten des 'IN'-Operators sind vom Typ her identisch. Klar geht das.

If TObject in [Integer, Integer, Integer] Then ... Äh. Beide Seiten des 'IN'-Operators sind nicht typkompatibel. Ich komme darauf zurück.

If TObject in [TObject , TObject , TObject ] Then ... Gottseidank meckert wenigstens da der Compiler, vonwegen "ordinaler Typ erforderlich".

Wieso geht das Konstrukt '<ObjectRef> IN <OrdinalSet>' durch den Compiler? Hmm. Mal sehen, was die Delphi-OH dazu sagt:
In der Tabelle der Mengenoperatoren steht bei 'IN', das die Operatorn "Ordinalwert, Menge" sein müssen. Hupsa. Eine <ObjectRef> ist doch aber kein Ordinalwert. Oder?

Um also himitsus Frage aufzugreifen
Zitat von himitsu:
Warum?
Würde ich derzeit mit einem 'Weil Irgendwer bei BorlInpCodeGarcadero mal geschlampt hat' beantworten.


Zitat von Stevie:
... weil Objekt-Referenzen nicht implizit zuweisungskompatibel zu diesem Datentyp sind (Stichwort Typensicherheit)
Das stimmt dann wohl nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat