AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Vordefinierte Parameter nur im Interface-Abschnitt?
Thema durchsuchen
Ansicht
Themen-Optionen

Vordefinierte Parameter nur im Interface-Abschnitt?

Ein Thema von Codehunter · begonnen am 8. Jul 2016 · letzter Beitrag vom 12. Jul 2016
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:23
Delphi-Version: XE4
Hallo!

Ich habe bisher immer vordefinierte Parameter sowohl im interface- als auch im implementation-Abschnitt angegeben:
Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  public
    procedure Func(const Param: Integer = -1);
  end;

implementation

procedure TMyObject.Func(const Param: Integer = -1);
begin

end;
Das war sowas wie eine Gewohnheit. Nun ist mir aufgefallen, dass SHIFT-STRG-C im Implementation-Abschnitt eine abweichende Deklaration einfügt:
Delphi-Quellcode:
implementation

procedure TMyObject.Func(const Param: Integer);
begin

end;
Ist es gar nicht nötig, die Vorbelegung an beiden Stellen zu machen? War mir neu ...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:33
Es ist noch nicht einmal nötig die Argumente im implementation Teil anzugeben
Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  public
    procedure Func(const Param: Integer = -1);
  end;

implementation

procedure TMyObject.Func;
begin

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#3

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:35
Ist es gar nicht nötig, die Vorbelegung an beiden Stellen zu machen?
Ist tatsächlich so und erhöht damit natürlich die Wartbarkeit, weil Ändeurungen nur an einer Stelle gemacht werden müssen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:49
War das früher mal obligatorisch? Wenn man sich schon alte Gewohnheiten abgewöhnt will man ja wissen warum man das überhaupt so gemacht hat...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#5

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:56
Es ist noch nicht einmal nötig die Argumente im implementation Teil anzugeben
Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  public
    procedure Func(const Param: Integer = -1);
  end;

implementation

procedure TMyObject.Func;
begin

end;
Aber nur, wenn Funktionen nicht overload sind. Oder?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#6

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 11:58
Ist es gar nicht nötig, die Vorbelegung an beiden Stellen zu machen?
Ist tatsächlich so und erhöht damit natürlich die Wartbarkeit, weil Ändeurungen nur an einer Stelle gemacht werden müssen.
Wobei es ganz angenehm ist, wenn ich in der Implementation die verfügbaren Parameter sofort sehe.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 12:00
Es ist noch nicht einmal nötig die Argumente im implementation Teil anzugeben
Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  public
    procedure Func(const Param: Integer = -1);
  end;

implementation

procedure TMyObject.Func;
begin

end;
Aber nur, wenn Funktionen nicht overload sind. Oder?
Logisch, weil sonst die Eindeutigkeit nicht mehr gegeben ist. Darum ist das zwar möglich aber nicht ratsam
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 8. Jul 2016, 17:03
Es ist noch nicht einmal nötig die Argumente im implementation Teil anzugeben
Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  public
    procedure Func(const Param: Integer = -1);
  end;

implementation

procedure TMyObject.Func;
begin

end;
Genau darüber habe ich mich vor zwei Stunden beim Code umbauen auch gewundert.
Im interface -Teil hab ich einer Methode einen Parameter beschert und im implementation -Teil noch nicht angepasst und mich dann schwer gewundert das das Programm kompiliert UND funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 9. Jul 2016, 03:32
In der Implementation lasse ich die Default-Parameter auch immer weg, dann ist das dort unten auch kürzer.
PS: Die Klassenvervollständigung tut das auch.
Genauso hab ich oben manchmal an jedem Parameter die Typdefinition und unten sind die dann mit Komma zusammengefasst. (wenn es bei Überladenen mehrere Versionen gibt, der Symmetrie)

Die Parameter schreibe ich aber dennoch in der Implementation.
Erstmal sieht man dann auch unten die Parameter und muß nicht erst hoch gucken oder das Code-Insight bemühen.
Dann gibt es einen Fall, wo Parameter immer unten stehen müssen. Also bei überladenen Methoden, denn nur so kann der Compiler die Methoden auseinander halten.
Und da ich gern alles einheitlich habe, stehen somit auch die anderen Parameter da.

Auch Dinge wie static, virtual oder inline muß man nur im Interface definieren.
$2B or not $2B

Geändert von himitsu ( 9. Jul 2016 um 03:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 9. Jul 2016, 13:37
War das früher mal obligatorisch? Wenn man sich schon alte Gewohnheiten abgewöhnt will man ja wissen warum man das überhaupt so gemacht hat...
Um übersichtlichen Code zu haben. Das ist zumindest mein Grund. Dass man das auch weglassen kann, habe ich schon relativ früh gelesen.

Mir ist allerdings damals schon kein Grund eingefallen warum man diese Verwirrungstaktik betreiben sollte und die Parameter weglassen sollte. Ein Überblick über fremden Quelltext wird dadurch deutlich verzögert und auch in eigenem Quelltext ist es der Lesbarkeit deutlich abträglich.
Natürlich erkennt man Parameter in sauberem Quelltext zumindest an dem großen A als Prefix, aber den Typ sieht man daran dennoch nicht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:55 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