Ver Mensaje Individual
  #3  
Antiguo 12-04-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Tal parece que tenemos oxidados los conocimientos más básicos del lenguaje, JXJ. IMPERDONABLE,

Parámetros por valor:
Código Delphi [-]
function Foo(Param: TDato): TOtroDato;
procedure Foo(Param: TDato);

Modo de uso:
Código Delphi [-]
algo2 := Foo(algo1);
Foo(algo3);

Parámetros por referencia:
Código Delphi [-]
Function Foo(var Param: TDato): TOtroDato;
procedure Foo(var Param: TDato);

Modo de uso:
Código Delphi [-]
algo2 := Foo(algo1);
// hacemos "algo" con algo1 para evaluar si ha tenido un cambio en su valor...

Foo(algo3);
// hacemos "algo" con algo3 para evaluar si ha tenido un cambio en su valor...

Parámetros opcionales o por defectos:
Código Delphi [-]
function Foo(Param1: TDato; var Param2: TDato = VALOR_DEFECTO): TOtroDato;
procedure Foo(Param1: TDato; var Param2: TDato = VALOR_DEFECTO);

Modo de uso:

Código Delphi [-]
algo := Foo(algo1);
algo := Foo(algo1, algo2);

Foo(algo3);
Foo(algo3, algo4);

La posibilidad de sobrecargar como comenta roman si bien puede resultar válida si lo vemos desde la unidad cliente, no es estrictamente hablando un caso de parámetros opcionales. En realidad son funciones sobrecargadas con diferente cantidad de parámetros; que no opcionales o por defecto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita