¿Tengo que ajustar todos mis objetos IDisposable
en las declaraciones using(){}
, incluso si solo estoy pasando uno al otro? Por ejemplo, en el siguiente método:¿Es necesario anidar objetos con objetos IDisposable?
public static string ReadResponse(HttpWebResponse response)
{
string resp = null;
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader responseReader = new StreamReader(responseStream))
{
resp = responseReader.ReadToEnd();
}
}
return resp;
}
¿Podría consolidar esta a un solo using
así:
public static string ReadResponse(HttpWebResponse response)
{
string resp = null;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
resp = reader.ReadToEnd();
}
return resp;
}
¿Puedo contar tanto el Stream
y la StreamReader
está dispuesto? ¿O tengo que usar dos declaraciones using
?
Me encanta usar apilamientos, mucho más limpio que las indentaciones masivas :-) –
Piense en las llaves como opcionales. De la misma manera que lo son con cualquier otra declaración, como una declaración 'if'. Es un código válido para escribir "if (expresión) if (expresión2) if (expresión3) {/ * Múltiples líneas de código.* /} "donde cada declaración if está anidada dentro de la anterior. –
@Moozhe No es tan sorprendente que se compile, es más cómo maneja VS la sangría. Cuando usas corchetes, lo pestañas en un nivel extra, cuando lo haces esto no es así. Si al hacer esta tabulación en un nivel probablemente ni siquiera lo use. – Servy