Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#12

AW: Was ist eigentlich der Unterschied zwischen "type" und "type of"?

  Alt 12. Sep 2018, 15:14
Mit type of bekommst Du einen neuen Typ der nicht zum Original Kompatibel ist...
Kompatibel schon, aber sie sind unterscheidbar.

Du kannst die Tyen gegeneinander zuweisen,
aber bei Typprüfungen sind sie unterschiedlich, womit beim Übeladen der Compiler das trennen kann.



Ohne TYPE ist es ein Alias.
Delphi-Quellcode:
type
  B = A; // ein Alias für A ... also B gibt es für den Compiler nicht ... das wird sofort durch A ersetzt.
  C = type A; // neuer Typ mit eigener RTTI und A ls Vorfahre ... da intern gleich, sind sie weiterhin zuweisungskompatibel.
Du kannst das mit fast der Vererbung bei Objekten D = class(A); verleichen.

Das kann man auch für eine Weiterleitung verwenden.
Delphi-Quellcode:
//unitn

uses
  unitx;

type
  A = unitx.A;

{
  unitn.A
  unitx.A
}
Delphi-Quellcode:
uses
  unitn;

// A ist sihtbar, obwohl eigenlich in unix ist, was aber nicht im USES steht.
Wird gern verwedet, wenn Typen verschoben wurden. Ower wenn man die andere Unit nicht überall direkt einbinden will.
In der alten Unit die Weiterleitung (ein Alias mit dem selben Namen, aber in unterschiedlichen Namespaces) und schon ist auch über diese Unit der Typ veröffentlicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Sep 2018 um 15:21 Uhr)
  Mit Zitat antworten Zitat