Рассмотрим следующий код:
using (var ms = new MemoryStream())
{
using(var writer = BinaryWriter(ms))
{
writer.Write(/*something*/);
writer.Flush();
}
Assert.That(ms.Length > 0); // Throws ObjectDisposedException
}
С одной стороны, одноразовый объект должен избавляться от своих ресурсов; я понимаю, но с другой стороны, объект не создавал и не владеет этим ресурсом, он был предоставлен -> вызывающий код должен взять на себя ответственность за него ... нет?
Я не могу придумать других подобных ситуаций, но является ли это последовательным шаблоном в структуре для любых класс, получающий одноразовые объекты, чтобы избавиться от них самостоятельно?