![]() |
Delphi-Version: 5
Default Value bei eigenen Typ
Hallo,
ich habe hier ein selbstdefinierten Datentyp(dynamischer Array) als Argument einer Methode. Kann man dafür auch ein Default-Wert angeben oder muss man die Methode dann doppelt definieren? |
AW: Default Value bei eigenen Typ
Wenn Du für den Defaultwert eine Konstante deklarierst sollte es gehen.
|
AW: Default Value bei eigenen Typ
Das gilt doch nur für eine Auswahl von Standardtypen zmd. funktioniert [''] schon mal nicht.
|
AW: Default Value bei eigenen Typ
Ich verstehe das Problem nicht. Dynamisches Array? Warum nicht einfach
Delphi-Quellcode:
?
nil
Delphi-Quellcode:
type TMeinArray = array of Integer;
procedure meineMethode(arg: TMeinArray = nil); begin // end; |
AW: Default Value bei eigenen Typ
Hat sich erledigt, bin von den selbsterstellten Typ zum offenen Array übergegangen.
Damit funktioniert nil natürlich nicht, mit der alten Lösung aber schon. Ist aber trotzdem hilfreich, danke. |
AW: Default Value bei eigenen Typ
Mengentypen können unter Delphi keinen Standardwert besitzen, wenn sie als Parameter einer Methode übergeben werden.
|
AW: Default Value bei eigenen Typ
Na klar können sie das:
Delphi-Quellcode:
{$APPTYPE CONSOLE}
type TItem = (uno, dos, tres); TItems = set of TItem; procedure processItems(const items: TItems = []); begin // end; begin processItems(); end. |
AW: Default Value bei eigenen Typ
Solange das SET in einen INTEGER passt. (maximal 32 Werte)
|
AW: Default Value bei eigenen Typ
Ja, okay, ich korrigiere mich:
Mengentypen außer "Small Set" können keinen Standardwert als Parameter einer Methode haben. Dies gilt aber auch für arrays. |
AW: Default Value bei eigenen Typ
Wobei ich das bei Arrays nicht ganz verstehe, denn der Pointer zu einem konstanten dynamischen Array passt in den Integer rein, genauso wie bei LongStrings.
Was es bei Arrays in Delphi aber komischer Weise nicht gibt, weil man da wohl was mit der Refferenzzählung vergessen hat, die eh "defekt" ist (kein Copy-On-Write, bei Schreibzugriffen). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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