AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generics <> Templates ?

Ein Thema von Ghostwalker · begonnen am 29. Jun 2007 · letzter Beitrag vom 29. Jun 2007
 
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Generics <> Templates ?

  Alt 29. Jun 2007, 10:55
Zitat von Ghostwalker:
Man baut sich eine abstrakte Vorlage, die später (z.B. durch einen Prä-Prozessor) typisiert wird.
Das wären Templates. Generics sind vorkompilierte Klassen, die Jitter oder Slots enthalten, die dann mit Methodenzeigern/Infos der Spezialisierung überschrieben werden.
Vorteil ist, dass du einen Generic direkt kompilieren kannst und somit schon ohne Spezialiserung Fehlermeldungen bekommst.
Nachteil ist, dass du keine Operatoren benutzen kannst. Und auch sonst kannst du nur die Dinge benutzen, die du durch Einschränkungen der Typenparameter festgelegt hast.

Hier mal ein Bleistift (ist allerdings in Chrome, da Delphi noch keine Generics hat):
Delphi-Quellcode:
type
  IDoSomething = public interface
    method DoSomething : String;
  end;


  GenericSample<T> = public static class
    where T is IDoSomething;
  public
    class method Test(instance : T);
  end;

implementation

class method GenericSample<T>.Test(instance : T);
begin
  var miep := instance.DoSomething();
  Console.WriteLine(miep);
end;
Wie du siehst, kann ich die Methode benutzen, weil ich T so eingeschränkt habe, dass es IDoSomething implementieren muss.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
 


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 02:33 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