2010-11-24 9 views

Respuesta

0

Según MSDN, yes. Cuando el control abandona el alcance de la declaración using, espera que se elimine.

0

El objeto se eliminará ya que saldrá del alcance cuando la excepción salga a relucir.

Ver: using Statement (C# Reference)

La instrucción using asegura que Desechar se llama incluso si se produce una excepción, mientras que la que está llamando a métodos en el objeto. Puede lograr el mismo resultado colocando el objeto dentro de un bloque try y luego llamando a Dispose en un bloque finally; de hecho, así es como el compilador traduce la sentencia using.

5

Un using es como envolver el código en un try...finally y disponer en el último, así que sí, que debería ser llamado.

2

usando se expande para intentarlo ... bloque final, así que sí, llamará a Dispose.

2

En el ejemplo que proporcionó se llamará a Dispose antes de que se produzca la excepción.

El código normal para asegurar que disponer obtiene la llamada parece

var connection= new SqlConnection(connectionString); 
try 
{ 
    // do something with the connection here 
} 
finally 
{ 
    connection.Dispose(); 
} 

La declaración usings reemplaza la necesidad de escribir una declaración tan engorroso.

using(var connection = new SqlConnection(connectionString)) 
{ 
    // do something with the connection here 
} 
Cuestiones relacionadas