AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Gibt es keine generischen Proceduren?

Ein Thema von himitsu · begonnen am 16. Jun 2010 · letzter Beitrag vom 14. Jan 2025
Antwort Antwort
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#1

AW: Gibt es keine generischen Proceduren?

  Alt 16. Jun 2010, 15:34
Wie macht es denn z.B. Delphi-Referenz durchsuchenFormat mit den typenlosen Dateneingabe-Array?
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Gibt es keine generischen Proceduren?

  Alt 16. Jun 2010, 15:37
Wie macht es denn z.B. Delphi-Referenz durchsuchenFormat mit den typenlosen Dateneingabe-Array?
Array of Const
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Gibt es keine generischen Proceduren?

  Alt 16. Jun 2010, 15:39
@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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#4

AW: Gibt es keine generischen Proceduren?

  Alt 9. Jan 2025, 20:22
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.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.495 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Gibt es keine generischen Proceduren?

  Alt 10. Jan 2025, 15:51
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.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#6

AW: Gibt es keine generischen Proceduren?

  Alt 10. Jan 2025, 23:50
Wenn man oft genug überladene Funktionen wie IfThen() für alle möglichen Typen implementiert, sieht man das vieleicht anders.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#7

AW: Gibt es keine generischen Proceduren?

  Alt 11. Jan 2025, 07:10
Dafür ist es aber nicht nötig, lose umherschwirrende Funktionen zu implementieren. Man kann dafür auch Sammelklassen mit genetischen Klassenmethoden erstellen. Die kann man auch überall nutzen, aber man sieht, wo die herkommen. Dafür könnte man auch den Unitnamen vorstellen, aber das wäre dann optional, was für ein Team nicht optimal wäre.

So habe ich dann TStringTools, TMathTools, usw. in entsprechenden Units Lib.Tools.MathTools.pas usw. im Ordner lib\tools, so dass man sich intuitiv zurechtfindet.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#8

AW: Gibt es keine generischen Proceduren?

  Alt 14. Jan 2025, 08:22
Es wurden mehrmals Lösungen vorgeschlagen, aber Emba hat abgelehnt.

z.B.
Ja, selbst wenn Generics nur mit Klassen/Records gehen, dann gibt es dennoch keinen Grund eine einzelne Methode nicht "intern" in eine Dummy-Klasse zu verpacken. (compilermagic und so)

ODER,
würde Emba sich nicht weigern wenigstens eine minimalste Unterstützung für Makros bereitzustellen, dann könnten wir das auch selbst machen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Gibt es keine generischen Proceduren?

  Alt 16. Jun 2010, 15:38
Mit offenen Variant-Arrays (array of const)...
//edit: Zu spät, und kein roter Kasten...
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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