![]() |
EMB DCE 12 - Unterschied zwischen v: TArray<T> und v: Array of T ?
Hallo,
in Zusammenhang mit Templates und Array's habe ich folgende zwei Möglichkeiten der Codierung bemerkt, und frage mich nun, was der Unterschied zwischen:
Delphi-Quellcode:
und:
constructor Create(v: Array of T); overload;
... constructor QChar<T>.Create<v: Array of T);
Delphi-Quellcode:
ist.
constructor Create(v: TArray<T>); overload;
... constructor QChar<T>.Create(v: TArray<T>); Beide Möglichkeiten können vom Compiler übersetzt werden. |
AW: EMB DCE 12 - Unterschied zwischen v: TArray<T> und v: Array of T ?
|
AW: EMB DCE 12 - Unterschied zwischen v: TArray<T> und v: Array of T ?
Als "Typ"-Deklaration das Gleiche, denn
Zitat:
während es nicht-generisch nur "gleich/ähnlich", aber nicht kompatibel ist.
Delphi-Quellcode:
A und B sehen gleich aus, sind allerdings nur gleich aber nicht zuweisungs-kompatibel, da jeweils eigene TypeInfo/RTTI.
type
A = array of Integer; B = array of Integer; C = TArray<Integer>; D = TArray<Integer>; Ebenso A/B und C. C und D sind aber identische Alias des selben generischen Types.
Delphi-Quellcode:
a := b; // geht nicht
a := c; // geht nicht c := d; // geht Und als Parameter, ist array-of ein Open-Array, also was ganz Anderes, zu dem aber ALLE anderen Array-Typen und Array-Konstanten zuweisungskompatibel sind. ![]()
Delphi-Quellcode:
//type X = array[0..666] of Integer;
//procedure Test(arr: array of Integer); // geht alles Test(a); Test(c); Test([1, 2, 3]); Test(x); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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-2025 by Thomas Breitkreuz