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.