Ver Mensaje Individual
  #25  
Antiguo 12-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por donald shimoda
prefiero escribir código seguro
Nosotros también, pero también preferimos no redundar. No hace falta evitar el caso nil por lo que expliqué arriba.

En el ejemplo anterior, la llamada Persona.Saluda realmente genera este código:

Código:
call TPersona.Saluda
Se llama a una función que existe, no hay una referencia a una memoria inválida.

Si tuviéramos

Código Delphi [-]
type
  TPersona = class
    Saludo: String;
    procedure Saluda;
  end;

procedure TPersona.Saluda;
begin
  ShowMessage(Saludo);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Persona: TPersona;

begin
  // No construyo el objeto
  Persona.Saluda;
end;

entonces sí que habría problemas, porque no ha sido asignada memoria a ningún objeto y por tanto el campo Persona.Saludo no existe aún.

// Saludos
Responder Con Cita