Volviendo un valor método de dentro una instrucción using que consigue un DataContext parece funcionar siempre bien, así:¿Hay algún efecto secundario de regresar desde el interior de una instrucción using()?
public static Transaction GetMostRecentTransaction(int singleId)
{
using (var db = new DataClasses1DataContext())
{
var transaction = (from t in db.Transactions
orderby t.WhenCreated descending
where t.Id == singleId
select t).SingleOrDefault();
return transaction;
}
}
Pero siempre me siento como si debiera ser cerrar algo antes de romper fuera de los soportes de uso, por ejemplo definiendo la transacción antes de la declaración que usa, obtenga su valor dentro de los corchetes, y luego devuelva después de los corchetes.
¿Definir y devolver la variable fuera de los corchetes de uso sería una mejor práctica o conservaría los recursos de alguna manera?
Puede ser interesante mirar la IL general para encontrar variantes de esto. Sospecho que habría poca diferencia en el IL generado. Normalmente ni siquiera me molestaría en declarar la transacción var; solo devuelve el resultado de la expresión. – Jonesie
@Manish, ¿por qué sería? –