![]() |
Problem mit overload
Hallo !!
Ich habe ein Problem mit overload. Folgender Code:
Delphi-Quellcode:
Der Compiler schreibt mir das hier:
TMyObjectList = class
private FArray: TMyObjArray; FOwnObj: Boolean; function GetObjInt(Index: Integer): TObject; function GetObjStr(Name: String): TObject; public property Items[Index: Integer]: TObject read GetObjInt; overload{-> hier meckert der Compiler <-}; property Items[Name: String]: TObject read GetObjStr; overload; constructor Create(const AOwnObjects: Boolean); procedure Add(Obj: TObject; const Name: String); end; Zitat:
|
Re: Problem mit overload
Property läßt kein overload zu, es ist für Methoden gedacht.
|
Re: Problem mit overload
Oh ^^
Gibt es eine andere Möglichkeit, das zu erreichen, was ich möchte ?? |
Re: Problem mit overload
Zitat:
|
Re: Problem mit overload
... dass ich Items einen String oder eine Integer übergeben kann und je nach Typ eine andere Getter-Funktion ausgeführt wird.
|
Re: Problem mit overload
Zitat:
|
Re: Problem mit overload
Zitat:
Zitat:
|
Re: Problem mit overload
Zitat:
Ich würde wirklich zwei Properties definieren 'FooByName' und 'FooByID' oder so. Was spricht denn dagegen? So ist es jedenfalls viel übersichtlicher als der unsichere Weg über Variants. Trotzdem ne lustige Idee. |
Re: Problem mit overload
Zitat:
Delphi-Quellcode:
Dieser Code gibt jedenfalls immer "String" aus.
var
v : variant; begin v := '123'; if VarIsStr(v) then ShowMessage('String') else if VarIsNumeric(v) then ShowMessage('Numeric'); |
Re: Problem mit overload
Hi Union... eben, sag ich doch (v := '123' ==> v ist String, v:=123 ==> v ist Numerisch). :gruebel: Oder meinst Du meinen Einwand, das man sich nicht sicher sein kann?
Er will doch aber über den Typen des Varianten entscheiden, ob es ein Index oder ein Identifier ist und dann den entsprechenden Getter aufrufen. Das wird eben nicht gehen. Ich kann das Bestreben verstehen, überladene Methoden und Properties zu erstellen. Auf den ersten Blick kommt man dadurch dem Anwender der Klasse entgegen. Auf den 2.Blick ist das aber sehr fehleranfällig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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