Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Unterschied zwischen Variant und Generics (https://www.delphipraxis.net/180668-unterschied-zwischen-variant-und-generics.html)

Dejan Vu 6. Jun 2014 20:33

AW: Unterschied zwischen Variant und Generics
 
Zitat:

Zitat von Neutral General (Beitrag 1261626)
Delphi-Quellcode:
swapTwoValues<Integer>(someInt1, someInt2);
swapTwoValues<String>(someStr1, someStr2);
swapTwoValues<TMyRecord>(someRec1, someRec2);

Und in Delphi muss man die Typen wirklich explizit angeben? In C# kann man verzichten, da der Compiler den Typen auflösen kann. Da geht also:
Delphi-Quellcode:
swapTwoValues(someInt1, someInt2);
swapTwoValues(someStr1, someStr2);
swapTwoValues(someStruct1, someStruct2);

Neutral General 7. Jun 2014 00:03

AW: Unterschied zwischen Variant und Generics
 
Zitat:

Zitat von Dejan Vu (Beitrag 1261649)
Und in Delphi muss man die Typen wirklich explizit angeben?

Jo aber das hat mich bisher eigentlich noch nicht so gestört und ich glaube ich finde das auch übersichtlicher.. (Vllt. auch weil ichs nicht anders gewohnt bin)

Dejan Vu 7. Jun 2014 06:32

AW: Unterschied zwischen Variant und Generics
 
Zitat:

Zitat von Neutral General (Beitrag 1261658)
Jo aber das hat mich bisher eigentlich noch nicht so gestört und ich glaube ich finde das auch übersichtlicher...

Mich stört alles überflüssige. Und hier interessieren mich die Typen nicht (=Geschmackssache).

Zum Thema: Generics dürften schneller sein, als Variants. Der Overhead ist zwar nicht besonders (obwohl man immer sagt, Variants seien soooo langsam), aber in intensiven Iterationen oder Schleifenoperationen macht sich das dann bemerkbar. Auch der Speicherverbrauch ist bei Variants etwas höher. Der Overhead ist weitgehend konstant, sodaß sich dies sehr stark bei kleinen Datentypen bemerkbar macht.

Stevie 7. Jun 2014 08:26

AW: Unterschied zwischen Variant und Generics
 
Zitat:

Zitat von Dejan Vu (Beitrag 1261649)
Und in Delphi muss man die Typen wirklich explizit angeben? In C# kann man verzichten, da der Compiler den Typen auflösen kann.

Das nennt sich Typinferenz und funktioniert in Delphi nicht mit var oder out Parametern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz