![]() |
for-in und Defaultwert bei TList-Nachfahre
Hi,
da TurboDelphi noch keine Generics kennt, habe ich mir für TList eine Wrapper-Klasse geschrieben, in welcher folgende Zeile vorkommt:
Delphi-Quellcode:
Nun klappt aber folgende Schleife nicht:
property Items[Index: Integer]: INeuron read Get write Put; default;
Delphi-Quellcode:
Neuron ist als INeuron deklariert und FOutput vom Typ der Wrapper-Klasse.
for Neuron in FOutput do
Neuron... Delphi-Compiler: [Pascal Fehler] UNeuron.pas(62): E2010 Inkompatible Typen: 'INeuron' und 'Pointer' So compiliert es fehlerfrei:
Delphi-Quellcode:
Warum klappt die for-in-Schleife nicht?
for I := 0 to FOutput.Count - 1 do
FOutput[I]... Mfg FAlter |
Re: for-in und Defaultwert bei TList-Nachfahre
Lies mal die Hilfe zur for-in-Schleife. Die for-in-Schleife greift nicht auf Items zu, sondern beruht darauf, dass eine Methode GetEnumerator existiert, die ein Objekt oder einen Record mit bestimmten Methoden und Eigenschaften zurückgibt. Du musst einen eigenen Enumerator schreiben und eine Instanz davon in GetEnumerator zurückgeben.
[edit=Matze]Beitrag neu abgesendet, da er nicht dargestellt wurde. MfG, Matze[/edit] |
Re: for-in und Defaultwert bei TList-Nachfahre
Hallo Felix,
wenn du für eine eigene Klasse einen Enumerator schreiben möchtest, findest du vielleicht in ![]() Gruß Hawkeye |
Re: for-in und Defaultwert bei TList-Nachfahre
Hi,
danke... Dachte es hat was mit dem default zu tun, dabei wars ganz war anderes. :oops: Einen eigenen brauch ich aber gar nicht schreiben (obwohl es sehr einfach aussieht, hab mit die verlinkte Seite mal angesehen) denn ich kann auch einfach den Enumerator für TList wrappen (schließlich hab ich auch die TList gewrappt und lediglich Typecasts hinzugefügt, sollte also nicht langsamer werden):
Delphi-Quellcode:
Damit klappt jetzt auch die for-in-Schleife.
TNeuronEnumerator = class(TListEnumerator)
public function GetCurrent: INeuron; inline; property Current: INeuron read GetCurrent; end; //in der Liste function GetEnumerator: TNeuronEnumerator; inline; Mfg FAlter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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