AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Weglassen von Parameterlisten

Ein Thema von Codewalker · begonnen am 9. Jan 2012 · letzter Beitrag vom 9. Jan 2012
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Weglassen von Parameterlisten

  Alt 9. Jan 2012, 10:57
Delphi-Version: 2010
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:
type TTest = class
     {...}
     procedure Test(sMsg: String);
   end;

{...}

procedure TTest.Test();
begin
  ShowMessage(sMsg);
end;
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.
Frage: Kompiliert das schon immer? Warum sollte das gehen oder sinnvoll sein? Kann man das Verhalten abschalten?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:11
Hallo,

Also bei mir kompiliert das weder in D2009 noch in XE2.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:15
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.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#4

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:20
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.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#5

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:28
procedure TTest.Test; (ohne die Klammer geht es vermutlich besser)

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.


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.


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.
Ja, das wäre ein Vorteil, aber über das Refactoring stellt dieses kein Hindernis dar.
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:33
Das heißt dann aber auch, dass es ein Sprach-Designelement ist und eine Abschaltung (oder wenigstens eine optionale Warnung) nicht möglich ist.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 11:40
@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
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 13:39
diese Kurzschreibung ist zumindest schon in D7 vorhanden...ich nutz es aber auch nicht.

Gruß
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Weglassen von Parameterlisten

  Alt 9. Jan 2012, 15:34
Grad mal mit dem FPC getestet. Im {$mode delphi} klappt's, im {$mode objfpc} nicht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz