Desechable usando patrón

using (FileStream fileStream = new FileStream(path)) { // do something } 

Ahora sé que el patrón de uso es una implementación de IDisposable, es decir, que se configura un Try / Catch / Finally y se llama Disose en el objeto. Mi pregunta es cómo se maneja el método Close.

MSDN dice que no se llama, pero he leído lo contrario.

Sé que el FileStream se hereda de Stream que se explica aquí . Ahora que dice no anular Close () porque es llamado por Dispose ().

Entonces, ¿algunas clases simplemente llaman a Close () en sus métodos Dispose () o el uso de la llamada Close ()?

La statement de using solo se conoce sobre Dispose() , pero Stream.Dispose llama a Close() , como se documenta en MSDN :

Tenga en cuenta que debido a los requisitos de compatibilidad con versiones anteriores, la implementación de este método difiere de la guía recomendada para el patrón de Disposición. Este método llama a Close, que luego llama a Stream.Dispose (Boolean).

usando llamadas Dispose () solamente. El método Dispose () podría llamar a Close () si es así como se implementa.

Close () no forma parte de la interfaz IDisposable, por lo que su uso no tiene forma de saber si se debe llamar o no. el uso solo llamará a Dispose (), pero los objetos diseñados inteligentemente se cerrarán a sí mismos en el método Dispose ().

No creo que el uso de llamadas Close (), no tendría forma de saber que debería llamar a esa función en particular. Así que hay que llamar a dispose, y eso a su vez está llamando a close.

En clases .Net Cerrar () llamar a Dispose (). Deberías hacer lo mismo.