![]() |
Properties überladen?
Guten Morgen!
Bin grad auf etwas gestoßen! Mal angenommen ich habe eine Listenklasse, die eine verkettete Liste Kapselt. Also
Delphi-Quellcode:
Ist sowas möglich? Oder geht das nur über zwei überladene Funktionen machen, die mir den Eintrag zurückgeben.
TMyList = Class
Private Root: TMyListenEintrag; GetEintrag(const Index: integer): TMyListenEintrag; overload; GetEintrag(const Name: string): TMyListenEintrag; overload; {...} public // Hier habe ich mir überlegt, man kann über den Index und über den Inhalt an einen Eintrag kommen, also zum beispiel über einen string property Items[Index: integer]: TMyListenEintrag read GetEintrag; overload; property Items[Name: string]: TMyListenEintrag read GetEintrag; overload; end; Über den Sinn dieser Methode lässt sich streiten, es geht mir lediglich darum, ob sowas geht, und wenn ja, wie. Schonmal vielen Dank! |
Re: Properties überladen?
Hallo Richard,
für die Default-Eigenschaft wird es von Delphi inzwischen direkt unterstützt:
Delphi-Quellcode:
Wenn es sich nicht um die Default-Eigenschaft handelt, mußt du einen
type
TMyList = Class Private Root: TMyListenEintrag; function GetEintrag (const Index: integer): TMyListenEintrag; overload; function GetEintrag (const Name: string): TMyListenEintrag; overload; public property Items [const Index: integer]: TMyListenEintrag read GetEintrag; default; property Items [const Name: string]: TMyListenEintrag read GetEintrag; default; end; ![]() Gruß Hawkeye |
Re: Properties überladen?
Danke für die Antwort, das scheint genau das zu sein, nach dem ich gesucht habe!
Kanns im Moment leider nicht ausprobieren... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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 by Thomas Breitkreuz