Es innecesario, ya que la declaración using
está ligado explícitamente a la interfaz IDisposable
, per the MSDN docs
Proporciona una sintaxis conveniente que asegura el correcto uso de los objetos IDisposable.
edición: El C# language spec (Sec. 8.13) proporciona tres expansiones posibles para el azúcar sintáctica de la declaración using
:
A usando enunciado de la forma
using (ResourceType resource = expression) statement
corresponde a una de las tres expansiones posibles. Cuando TipoRecurso es un tipo de valor no anulable, la expansión es
{
ResourceType resource = expression;
try {
statement;
}
finally {
((IDisposable)resource).Dispose();
}
}
lo contrario, cuando TipoRecurso es un tipo de valor anulable o un tipo de referencia que no sea dinámica, la expansión es
{
ResourceType resource = expression;
try {
statement;
}
finally {
if (resource != null) ((IDisposable)resource).Dispose();
}
}
lo contrario, cuando TipoRecurso es dinámica, la expansión es
{
ResourceType resource = expression;
IDisposable d = (IDisposable)resource;
try {
statement;
}
finally {
if (d != null) d.Dispose();
}
}
Tenga en cuenta que en cada una de estas expansiones el reparto se realiza de todos modos, por lo que originalmente se dijo, el as IDisposable
es innecesario.
+1 para "si este objeto implementa IDisposable ..." – Justin