AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Funktion überladen oder Standardparameter oder ?
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion überladen oder Standardparameter oder ?

Ein Thema von TomDooley · begonnen am 31. Aug 2004 · letzter Beitrag vom 1. Sep 2004
Antwort Antwort
TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#1

Funktion überladen oder Standardparameter oder ?

  Alt 31. Aug 2004, 16:21
Hallo

Ich rufe in einem Programm zweimal eine Methode auf. Einmal kann ich jedoch auf einen Paramter verzichten... Soll ich nun die Methode überladen, einen Standardparamter verwenden (der dann einfach nicht verwendet wird), einen Dummy-Wert übergeben oder kann man den Paramter gar einfach weglassen?

Delphi-Quellcode:
interface

procedure MachXY(i: integer; s: string)
  case i of
    1: //verwende i und s
    2: //verwende nur i
  ...


implementation

var
  x : integer; //z.B 1
  y : integer; //z.B 2
  z : string;

MachXY(x, z);
 ...

MackXY(y);
 ...
Ich könnte natürlich auch gleich zwei verschiedene Methoden schreiben... Aber das möchte ich eben nicht (ausser das ist wirklich die einzig "wahre" Lösung).

es dankt und grüsst

Tom
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Funktion überladen oder Standardparameter oder ?

  Alt 31. Aug 2004, 16:29
Du kannst auch 'nen Parameter einfach weglassen, indem du 'nen Standartwert übergibst - das ist auch für mehrere Variablen möglich, diese müssen allerdings immer als letztes (ganz rechts) drinstehen.

z.B.:
Delphi-Quellcode:
procedure MachXY(i: integer; s: string = '');
  Begin
  End;


MachXY(123, 'abc');

MachXY(456);
wenn in diesem Beispiel kein Wert für s übergeben wird, dann wird ein leerer String ( '' ) verwendet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#3

Re: Funktion überladen oder Standardparameter oder ?

  Alt 1. Sep 2004, 07:25
Ok, also ein Standardparameter... Was ist wenn ich jetzt anstatt eines Strings ein Objekt oder ein Array hätte? Kann ich dann "nil" übergeben?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Funktion überladen oder Standardparameter oder ?

  Alt 1. Sep 2004, 09:34
Moin!

Delphi-Quellcode:
interface

procedure MachXY(i: integer; s: string); Overload;
procedure MachXY(i: integer; o: TObject); Overload;
procedure MachXY(i: integer; r: Real); Overload;


implementation

...
MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Funktion überladen oder Standardparameter oder ?

  Alt 1. Sep 2004, 13:32
Zitat von TomDooley:
Ok, also ein Standardparameter... Was ist wenn ich jetzt anstatt eines Strings ein Objekt oder ein Array hätte? Kann ich dann "nil" übergeben?
für objekte kannst du nil als standartparameter benutzen, arrays unterstützen jedoch keine standartparameter
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Funktion überladen oder Standardparameter oder ?

  Alt 1. Sep 2004, 13:34
Wenn du Arrays nutzen willst, übergib der Funktion doch einen Array-Pointer, dan geht dort auch ein Standardparameter. Quasi jedenfalls.
  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 07:43 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