¿Hay alguna manera de hacer referencia a una instancia de objeto que se crea con la instrucción "con"?Instancia de objeto de referencia creada con "con" en Delphi
Ejemplo:
with TAnObject.Create do
begin
DoSomething(instance);
end;
Dónde HacerAlgo usaría la referencia de instancia como si estuviera pasando una instancia de una variable declarada referencia al objeto creado.
Ejemplo:
AnObject := TAnObject.Create;
Gracias.
véase también http://stackoverflow.com/questions/71419/whats -wrong-with-delphis-with –
Ok, voy a morder :-) 'with' puede causar una gran confusión si no tienes cuidado, pero hay situaciones en las que simplemente hace que el código sea mucho más legible. Los nombres cuidadosos pueden ser de ayuda aquí. El uso de esquemas de nombres para evitar confusiones es una técnica común para el código Delphi de todos modos (use TXxx para tipos, FXxxx para miembros privados, GetXxx y SetXxx para getters y setters, etc.). Simplemente use MyXxx o algo similar para las variables locales y no tendrá tanta confusión como lo haría al llamar a las variables "x" y "o". –
No cambiaría los pocos casos en los que * podría * hacerlo más legible para esas ocasiones en las que la función de auto-alcance me ha mordido. Literalmente he desperdiciado semanas en problemas relacionados con esto. Ningún código puede justificarse por ser tan legible que vale tanto tiempo para encontrar errores extraños. –