![]() |
Delphi-Version: XE5
Generics ohne Typangabe - Ist das neu?
^^^^^ XE7!!!
Da habe ich doch gerade ein wenig mit Generics herumgebastelt und bin (positiv) überrascht, dass es funktioniert:
Delphi-Quellcode:
Das war doch nicht immer so, oder doch? :gruebel:
type
TFoo = class public class procedure Bar<T>(const Value : T ); end; procedure Test; var LBar : TBar; begin TFoo.Bar( LBar ); // dieser Aufruf ist äquivalent zu TFoo.Bar<TBar>( LBar ); end; |
AW: Generics ohne Typangabe - Ist das neu?
Kann mich nicht erinnern, daß es ging,
aber ich glaub gehört zu haben, daß dieses Verhalten wurde mehrfach gewünscht wurde. [edit] XE geht und ![]() |
AW: Generics ohne Typangabe - Ist das neu?
Ohne eine kompetente Antwort geben zu können (spätestens Stevie wird das tun), meine ich dass es in trivialen Fällen (wie diesem) schon vor XE7 ging.
|
AW: Generics ohne Typangabe - Ist das neu?
Habs grad ausprobiert. Funktioniert seit Delphi 2009 ;)
Aber hatte ich auch nicht gewusst :) |
AW: Generics ohne Typangabe - Ist das neu?
getestet ... Antwort korrigiert
|
AW: Generics ohne Typangabe - Ist das neu?
Gefühlt hatte ich eigentlich auch diese Meinung im Kopf "Woanders geht es, nur bei Delphi nicht, wollen wir auch haben!".
Na gut, wir haben (hatten schon seit Ewigkeiten) es ... dann kann man ja auch was draus machen :) |
AW: Generics ohne Typangabe - Ist das neu?
Das ging nicht, glaub ich.
Delphi-Quellcode:
type
TFoo = class public class procedure Bar<T>() : T ; end; procedure Test; var LBar : TBar; begin LBar := TFoo.Bar; // dieser Aufruf ist äquivalent zu LBar := TFoo.Bar<TBar>; end; |
AW: Generics ohne Typangabe - Ist das neu?
Jo das geht tatsächlich nicht. Auch nicht in XE7.
|
AW: Generics ohne Typangabe - Ist das neu?
Das auch nicht
Delphi-Quellcode:
TFoo = class
class procedure Bar<T>( AList : TList<T> ); end; |
AW: Generics ohne Typangabe - Ist das neu?
In C# kann man die explizite Typangabe weglassen, wenn sie sich aus dem Aufrufkontext ergibt: Hier ist der Typ des Parameters bzw. des Rückgabewertes ausreichend und definiert damit den Typparameter. Offensichtlich ist das in Delphi nicht anders.
Bei C# habe ich das erst mit dem Einsatz des Refactoringtools "Resharper" bemerkt, der gnadenlos redundanten Code moniert (wenn man ihn lässt). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 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