Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Gibt es keine generischen Proceduren? (https://www.delphipraxis.net/152256-gibt-es-keine-generischen-proceduren.html)

himitsu 16. Jun 2010 15:07

Delphi-Version: 2010

Gibt es keine generischen Proceduren?
 
n'abend,

sacht mal, kann man denn keine genereische Proceduren erstellen?

Als Methoden ginge es ja, aber mir war so, als wenn man auch "einfache" Proceduren nutzen könnte, aber anscheinend täuche ich mich grade oder mache ich nur irgendwas falsch. o.O

s.h.a.r.k 16. Jun 2010 15:09

AW: Gibt es keine generischen Proceduren?
 
Zitat:

[DCC Fehler] Project1.dpr(42): E2530 Typparameter bei globaler Prozedur oder Funktion nicht zulässig
Scheinbar gehts nicht... Schade eigentlich.

himitsu 16. Jun 2010 15:32

AW: Gibt es keine generischen Proceduren?
 
Och schade, hatte gehofft der Fehler liege bei mir :?

H4ndy 16. Jun 2010 15:34

AW: Gibt es keine generischen Proceduren?
 
Wie macht es denn z.B. Delphi-Referenz durchsuchenFormat mit den typenlosen Dateneingabe-Array?

Neutral General 16. Jun 2010 15:37

AW: Gibt es keine generischen Proceduren?
 
Zitat:

Zitat von H4ndy (Beitrag 1029404)
Wie macht es denn z.B. Delphi-Referenz durchsuchenFormat mit den typenlosen Dateneingabe-Array?

Array of Const

implementation 16. Jun 2010 15:38

AW: Gibt es keine generischen Proceduren?
 
Mit offenen Variant-Arrays (array of const)...
//edit: Zu spät, und kein roter Kasten...

s.h.a.r.k 16. Jun 2010 15:39

AW: Gibt es keine generischen Proceduren?
 
@himitsu: Kannst dich ja neulich an meine Klassenmethoden erinnern. So könntest es machen, nur musst halt auf die Benutzung achten ;) Ich weiß, das ist zwar nicht so toll, aber ein alternativer Weg.

Dieses array of const Gedöns ist ja echt gut und recht, aber wenn man Generics einsetzen kann, dann sollte man diese bevorzugen, da dann nicht so viel gecastet werden muss. Ist somit dann auch schneller in der Ausführung.

Blup 9. Jan 2025 20:22

AW: Gibt es keine generischen Proceduren?
 
Ich weis das Thema ist schon fast 15 Jahre alt.
Um so erstaunlicher das Delphi noch immer diese Einschränkung gilt.
Wenn sowas geht, gibt es wirklich keinen sinnvollen Grund globale generische Procedure und Funktionen zu verbieten:
Delphi-Quellcode:
type
  TIfThenHelper = class helper for TObject
    class function IfThen<T>(AValue: Boolean; const ATrue: T; const AFalse: T): T; static;
  end;

implementation

class function TIfThenHelper.IfThen<T>(AValue: Boolean; const ATrue: T; const AFalse: T): T;
begin
  if AValue then
    Result := ATrue
  else
    Result := AFalse;
end;
Leider ist immer nur ein Helper pro Klasse und Unit gültig, was die Nützlichkeit einschränkt.
Es ist aber möglich für eine abgeleitete Klasse einen weiteren Helper zu deklarieren.
Dann kann man beide Helper gleichzeitig in dieser Klasse nutzen.

freimatz 10. Jan 2025 15:51

AW: Gibt es keine generischen Proceduren?
 
Zitat:

Zitat von Blup (Beitrag 1544984)
Wenn sowas geht, gibt es wirklich keinen sinnvollen Grund globale generische Procedure und Funktionen zu verbieten:

Zu verbieten nicht, aber auch keinen guten den Aufwand zu treiben.
Meiner Meinung nach sollte man generell globale generische Procedure und Funktionen vermeiden.

Blup 10. Jan 2025 23:50

AW: Gibt es keine generischen Proceduren?
 
Wenn man oft genug überladene Funktionen wie IfThen() für alle möglichen Typen implementiert, sieht man das vieleicht anders. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Seite 1 von 3  1 23      

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