das type besagt, daß ein eigenständiger Type angelegt wird.
dieses erstellt einen Alias für den Type, aber in der
RTTI bleibt es dennoch der externer Type "String".
type xyz = string;
.
hier wird in der
RTTI für xyz ein eigenständiger Type angelegt.
type xyz = type string;
.
Delphi hat doch eine strenge Typenprüfung, so daß man nun "xyz" und "string" unterscheiden kann.
[add]
Delphi-Quellcode:
type
PTypeInfo = ^TTypeInfo;
TTypeInfo = packed record
Kind: Byte;
Name: ShortString;
{TypeData: TTypeData}
end;
type
xyz = type string;
abc = string;
def = xyz;
begin
ShowMessage(Format('string = %s'#10'xyz = %s'#10'abc = %s'#10'def = %s'#10, [
PTypeInfo(TypeInfo(string))^.Name, PTypeInfo(TypeInfo(xyz))^.Name,
PTypeInfo(TypeInfo(abc))^.Name, PTypeInfo(TypeInfo(def))^.Name]));