Los documentos dicen que las cosas en un bloque de uso deben implementar IDisposable – ¿qué es IDisposable y cómo se implementa? En términos formales, IDisposable es una interfaz en el espacio de nombres del sistema, algo bastante esencial. IDisposable es literalmente la interfaz más simple posible, la interfaz más simple y significativa de todos modos – tiene un método único y vacío:
1publicvoidDispose();
csharp

De aquí viene el método Dispose que el bloque de uso llama – porque cualquier variable en un bloque de uso tiene garantizado el Dispose, el compilador sabe que podemos llamarlo. Un punto clave:
Lo que precisamente el método Dispose() dispone depende totalmente del desarrollador.
Si te imaginabas que había algún tipo de marco o magia de gestión de recursos, sólo porque implementamos una interfaz particular y la llamamos Dispose, estabas equivocado. El método Dispose es sólo un lugar acordado para poner tu lógica de limpieza, depende del desarrollador asegurarse de que esa lógica de limpieza hace lo que se supone que debe hacer. Todo esto es un largo camino de decir que sólo porque estás llamando a disposeción en tu PriceClient, no significa que esté llamando a ForceClose o cerrando la conexión correctamente de otra manera.
Por suerte, como la biblioteca de su proveedor es de código abierto, puede revisar el contenido real de Deshacerse en el objeto:
123456classPriceClient:IDisposable{publicvoidDispose(){this.ForceClose();}
csharp
Esto significa que este código:
12345678usando(var precioCliente =nuevoPrecioCliente()){ precioCliente.Conectar();var actualizadoprecio = precioCliente.ObtenerPrecio();devolver actualizadoprecio;}
csharp
Hace exactamente lo mismo que esto:
123456789101112try{ precioCliente.Conectar();var actualizadoPrecio = precioCliente.ObtenerPrecio();return actualizadoPrecio;}finalmente{ precioCliente.ForzarCerrar();}
csharp
Pero sólo porque hemos verificado que Dispose() llama a ForceClose . Si no lo hubiéramos hecho, o no lo hiciera, no sabríamos con seguridad que las dos declaraciones son equivalentes.