Ver Mensaje Individual
  #45  
Antiguo 20-09-2016
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
De hecho, creo que el debate debió comenzar con una exposición de motivos, precisamente para dar mayor claridad: cuáles son exactamente las supuestas falencias y virtudes de la cláusula.

Por ejemplo, ¿quién no ha usado el típico

Código Delphi [-]
with TAlgunFormulario.Create do
begin
  // ...
  ShowModal;
  // ..
end;

para mostrar un cuadro de diálogo?

Claro que podemos usar una variable pero resulta muy cómodo ahorrárnosla si el formulario se desecha una vez cerrado.

O bien, ¿han considerado que además de ahorrar escritura, el with puede ahorrar llamadas a métodos? Por ejemplo en:

Código Delphi [-]
Persona.Domicilio.Calle := 'Av. Principal';
Persona.Domicilio.Numero := 1;

si Domicilio es una propiedad de la clase TPersona a la que se accede mediante un getter, éste se llamará dos veces. El uso con with:

Código Delphi [-]
with Persona.Domicilio do
begin
  Calle := 'Av. Principal';
  Numero := 1;
end;

reduce a una sóla llamada.

Igual que el caso anterior, se puede usar una variable para evitar el doble acceso, pero resulta mucho más cómodo así.

LineComment Saludos
Responder Con Cita