Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Free eines unbekannten Objektes

  Alt 10. Sep 2008, 18:42
Zitat von Roachford:
Warum sollte? Begründung bitte?
Du hast die Frage ja fast selber beantwortet.
  1. Den As-Operator kann ich nur auf Objekte anwenden.
  2. Alle Objekte sind von TObject abgeleitet.
  3. Also haben alle Objekte die Methoden und Eigenschaften von TObject.
  4. As TObject verkümmert immer zu einem simplen TypeCast.
  5. Ein As Operator auf eine Vorfahrklasse ist nicht notwendig und wird daher auch vom Compiler ignoriert
  6. As ist nur notwendig, wenn ich auf bestimmte Nachfahren einer Klasse testen/casten möchte.
Man würde ja auch nicht von einem Pointer (p) ausgehend folgendes schreiben
TObject(p) as TObject wohl aber:
TObject(p) as TComponent
Anders ausgedrückt: Es gibt keine Möglichkeit (außer gewisse Plausibilitätstests) zu überprüfen, ob ein pointer auf ein Objekt zeigt. Und genau das müsste ja "As TObject" machen. Wenn es aber bereits ein Objekt ist, dann brauche ich auf TObject nicht zu testen (is) oder zu Konvertieren (as). Dann ist die Frage (As) ja bereits die Bedingung.


btw.: "is TObject" testet übrgiens nur auf <>nil.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat