AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Typendefinition (generische Syntax) für Funktionstypen
Thema durchsuchen
Ansicht
Themen-Optionen

Typendefinition (generische Syntax) für Funktionstypen

Ein Thema von Ralf Kaiser · begonnen am 25. Aug 2009 · letzter Beitrag vom 25. Aug 2009
Antwort Antwort
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#1

Typendefinition (generische Syntax) für Funktionstypen

  Alt 25. Aug 2009, 20:52
Halli Hallo,

ich bin gerade dabei mit mit den anonymen Methoden ein wenig vertraut zu machen.

Wenn ich z.B. eine Anonyme Methode verwenden will die einen integer als Parameter hat und einen integer als Ergebnis liefert kann ich diese ja mit "TFunc<...>" aus SysUtils so deklarieren:

Delphi-Quellcode:
var
  f: TFunc<integer, integer>;
In SysUtils sind jetzt aber nur 4 verschiedene Funktionstypen (1-4 Parameter mit jeweils einem Result) definiert.

Wie deklariere ich neue Funktionstypen mit generischen Parametern? (also z.B. 6 generische Parameter, ein Result)

Ist der letzte Eintrag in "<>" immer das Result?

Die Hilfe der D2010-Trial ist in diesem Bereich leider etwas, na ja, mager. Ausserdem ist ja bei der Trial-Version kein Source dabei in dem man mal eben nachsehen könnte wie die Syntax lautet.

Danke schon mal für Hinweise,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Typendefinition (Syntax) für Funktionstypen

  Alt 25. Aug 2009, 20:53
Delphi-Quellcode:
Type
  TMyFunc = Function (P1, P2 : Integer) : Integer;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Typendefinition (Syntax) für Funktionstypen

  Alt 25. Aug 2009, 21:03
Ja. Das definiert eine Funktion mit 2 integern und integer als Resultat.

Wie definiere ich das aber generisch (damit man für unterschiedliche Typenkombinationen nicht jedes mal eine neue Definition schaffen muss)?

Ich will alle Fälle abdecken:

Delphi-Quellcode:
Type
  TMyIntFunc = Function (P1, P2 : Integer) : Integer;
  TMystringFunc = Function (P1, P2 : string) : string;
  [... undsoweiterundsofort ...]
In SysUtils scheinen ja schon generische Definitionen für bis zu 4 Parametern zu existieren. Mir ist nur nich klar wie genau die Syntax dieser generischen(!!) Definition lautet.
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#4

Re: Typendefinition (generische Syntax) für Funktionstypen

  Alt 25. Aug 2009, 21:15
 TFunc<T1,T2,T3,T4,T5,T6,TResult> = reference to function (Arg1: T1; Arg2: T2; Arg3: T3; Arg4: T4; Arg5: T5; Arg6: T6): TResult;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Typendefinition (generische Syntax) für Funktionstypen

  Alt 25. Aug 2009, 21:17
Vielen Dank! - Das ist es.

An die Systax der Generika muss ich mich erst noch ein wenig gewöhnen.
Ralf Kaiser
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:47 Uhr.
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