![]() |
Delphi-Version: 2010
Weglassen von Parameterlisten
Hallo zusammen.
Mir ist in einem größeren Projekt etwas aufgefallen, von dem ich immer gedacht habe, es würde nicht kompilierbar sein. Angenommen ich habe folgendes:
Delphi-Quellcode:
Dieser Code ist tatsächlich kompilierbar, obwohl ich in der Implementierung der Funktion alle Parameter weggelassen habe. Das kann sehr irritierend sein, weil man die Parameter trotzdem verwenden kann und evtl. nicht sieht, dass es sich überhaupt um Parameter handelt.
type TTest = class
{...} procedure Test(sMsg: String); end; {...} procedure TTest.Test(); begin ShowMessage(sMsg); end; Frage: Kompiliert das schon immer? Warum sollte das gehen oder sinnvoll sein? Kann man das Verhalten abschalten? |
AW: Weglassen von Parameterlisten
Hallo,
Also bei mir kompiliert das weder in D2009 noch in XE2. |
AW: Weglassen von Parameterlisten
Ohne die Klammern sollte es gehen. Gut finde ich es auch nicht, sehe auch lieber die Parameter in der Implementierung und schreibe sie dort auch immer hin.
|
AW: Weglassen von Parameterlisten
Das praktische ist wohl, dass du beim verändern der Parameter in der Deklaration(einem Parameter nen defaultwert gegeben hast oder verändert hast) die Implementation nicht mehr anpassen musst.
|
AW: Weglassen von Parameterlisten
Delphi-Quellcode:
(ohne die Klammer geht es vermutlich besser)
procedure TTest.Test;
In der Implementation kann man das halt komplett weglassen. Genauso wie man es zwar lassen kann, aber dennoch die Werte Defaultparameter weglassen könnte, so wie es die Klassenvervollständigung macht. Nur bei überladenen Methoden muß es vorhanden sein, da der Compiler ja sonst nicht weiß was was ist. :stupid: Ich persönlich finde es aber besser, wenn die Parameter mit angegeben werden, denn dan sieht man innerhalb der Implementation auch, was da für Parameter vorhanden sind. Ist besser für das Codeverständnis. Zitat:
Und den Nachteil empfinde ich da als Größer, gegenüber diesem kleinem Vorteil. (wie oft liest man den Code und wie selten verändert man die Parameter) |
AW: Weglassen von Parameterlisten
Das heißt dann aber auch, dass es ein Sprach-Designelement ist und eine Abschaltung (oder wenigstens eine optionale Warnung) nicht möglich ist.
|
AW: Weglassen von Parameterlisten
@Himitsu: ja, seit dem es refactoring gibt ist es theorethis überflüssig.
Die Frage ist: seit wann ist das möglich?(kurzschreibvariante). Seit wann gibt es refactoring? und seit wann gibt es Autocomplete? In erster linie, hätte man ja auch ohne umfassende IDE so eine möglichkeit schneller zu schreiben. MFG Memnarch |
AW: Weglassen von Parameterlisten
diese Kurzschreibung ist zumindest schon in D7 vorhanden...ich nutz es aber auch nicht.
Gruß |
AW: Weglassen von Parameterlisten
Grad mal mit dem FPC getestet. Im
Delphi-Quellcode:
klappt's, im
{$mode delphi}
Delphi-Quellcode:
nicht.
{$mode objfpc}
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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