StreamWriter
не является неизменным ресурсом, его классом .NET, и он управляется на 100%.
Другой совершенно другое дело, что StreamWriter
может внутренне использовать неуправляемые ресурсы или владеть IDisposable
объект, который в свою очередь, может использовать неуправляемый ресурс, или просто расширяет класс, который реализует IDisposable
.
Последние две причины, почему StreamWriter
реализует IDisposable
, но будьте осторожны, внедрение IDisposable
вовсе не обязательно означает, что класс использует прямо или косвенно неуправляемые ресурсы.
В конкретном случае StreamWriter
очевидно, что он может косвенно потреблять неодинаковые ресурсы; базовый поток (поле экземпляра IDisposable
Stream stream
) может быть FileStream
, который явно потребляет неуправляемые ресурсы (например, файл в вашем HD). Но также очень возможно, что базовый поток не использует неуправляемые ресурсы, но как Colin Mackay правильно указывает в комментариях ниже, все потоки должны реализовывать согласованный интерфейс, который предоставляет абстрактный класс Stream
.
Что вы подразумеваете под «исходным кодом StreamWriter является неуправляемым кодом»? Вы спрашиваете, почему он одноразовый? – stuartd
да @stuartd !!!. – sameer
Просто потому, что тип, реализующий 'IDisposable', не означает, что он должен ** использовать неуправляемые ресурсы. – user1620220