Me gustaría saber su opinión sobre una cuestión de estilo de codificación que estoy al margen. Me doy cuenta de que probablemente no haya una respuesta definitiva, pero me gustaría ver si hay una fuerte preferencia en una dirección u otra.Una cuestión de estilo/legibilidad con respecto a la declaración de "uso" de C#
Estoy pasando por una solución que agrega using
declaraciones en bastantes lugares. A menudo se encontrará con algo así:
{
log = new log();
log.SomeProperty = something; // several of these
log.Connection = new OracleConnection("...");
log.InsertData(); // this is where log.Connection will be used
... // do other stuff with log, but connection won't be used again
}
donde log.Connection es un OracleConnection, que implementa IDisposable.
El neatnik en mí quiere cambiarlo a:
{
using (OracleConnection connection = new OracleConnection("..."))
{
log = new log();
log.SomeProperty = something;
log.Connection = conn;
log.InsertData();
...
}
}
Pero el amante de la brevedad y conseguir el puesto de trabajo-hecho-ligeramente más rápido quiere hacer:
{
log = new log();
log.SomeProperty = something;
using (log.Connection = new OracleConnection("..."))
log.InsertData();
...
}
Para alguna razón me siento un poco sucio al hacer esto. ¿Consideras esto malo o no? Si crees que esto es malo, ¿por qué? Si es bueno, ¿por qué?
EDITAR: Tenga en cuenta que este es solo un ejemplo (algo inventado) de muchos. Por favor, no se fije en el hecho de que esto indica una clase de registrador con una interfaz poco pensada. Esto no es relevante para mi pregunta, y no estoy en libertad de mejorar las clases de todos modos.
Gracias por abordar la pregunta real. Tu punto sobre la realización de la inicialización fuera del bloque de uso es interesante, porque la única razón por la que lo moví dentro del bloque fue porque sentí que era mejor mantener juntos todos los códigos relacionados. No había pensado en el gasto potencial (no es un problema aquí, sino un punto válido a tener en cuenta). –