![]() |
Delphi-Version: XE7
Feststellen dass neuer Typ nur ein Alias ist
Angenommen ich habe eine Typdefinition
Delphi-Quellcode:
Es ist also kein einfacher Alias wie
type TMyType = type Single;
Delphi-Quellcode:
.
type TMyType = Single
Wie kann ich nun, zur Laufzeit, feststellen dass
Delphi-Quellcode:
in Wirklichkeit nichts anderes ist als ein Single? Ich kann ja auch problemlos in eine Single-Variable einen
TMyType
Delphi-Quellcode:
-Wert reinstecken und es kompiliert.
TMyType
(Ich lasse meine Motivation dafür absichtlich weg um es nicht unnötig kompliziert zu machen) |
AW: Feststellen dass neuer Typ nur ein Alias ist
Die beiden Typen sind für Delphi 2 verschiedene Typen
|
AW: Feststellen dass neuer Typ nur ein Alias ist
So verschieden können sie aber wohl doch nicht sein wenn folgendes geht, oder?
Delphi-Quellcode:
type
TNewType = type Single; var mySingle: Single; myNewType: TNewType; begin myNewType := mySingle; mySingle := myNewType; end. |
AW: Feststellen dass neuer Typ nur ein Alias ist
Für den Delphicompiler schon.
Z.B. ist auch folgendes nicht kompatibel:
Delphi-Quellcode:
type
TStringArray: Array of string; ... var a1: TStringArray; a2: Array of String; ... a1 := a2; |
AW: Feststellen dass neuer Typ nur ein Alias ist
Die übertriebene Typsicherheit bei Arrays hätte ich spontan als anderes Thema gesehen, aber ich komme frisch aus dem Urlaub- Vielleicht ist mein Kopf noch nicht wieder ganz da.
Heißt das- Der "Delphi-Compiler" kann es, der Mensch vor der Tastatur allerdings nicht? Mann, ich lege einfach zwei lokale Variablen an und weise sie einander zu. Und vergleiche
Delphi-Quellcode:
. Sollte jemand die Definition für
SizeOf(..)
Delphi-Quellcode:
eines Tages von Single auf Double ändern wird im dieser Code hier um die Ohren fliegen.
TMyType
Das muss wohl reichen, besser scheint es ja nicht zu gehen. |
AW: Feststellen dass neuer Typ nur ein Alias ist
Zitat:
Zitat:
|
AW: Feststellen dass neuer Typ nur ein Alias ist
Zitat:
Warum ist die Welt nur so schlecht... |
AW: Feststellen dass neuer Typ nur ein Alias ist
Sorry für OT, aber dass kann ich mir jetzt nicht verkneifen.
Zitat:
Der gleiche Wort-Witz hätte nicht mit Lazarus funktioniert. |
AW: Feststellen dass neuer Typ nur ein Alias ist
Die Ausgangsfrage lässt sich allerdings beantworten:
Delphi-Quellcode:
Sorry, mit
type
myTyp = Single; var ti1, ti2: ^TTypeInfo; begin ti1 := TypeInfo(myTyp); ti2 := typeInfo(Single); if ti1.Name <> ti2.Name then writeLn('verschieden');
Delphi-Quellcode:
klappt das nicht.
myTyp = type Single;
|
AW: Feststellen dass neuer Typ nur ein Alias ist
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz