0
Есть класс .NET, который вызывает метод, когда он получает утилизировать, иногда вместо:Объект, который вызывает метод Dispose
Я хотел бы:
using(new OnDisposed(MyCleanupMethod))
{
...
}
Перед Я получаю ругал, по трем причинам:
- для длинных
try
блоков позволяет читателю увидеть, что должно быть очищено в начале try
имеет значение, что его ловить ошибку (что это не так)- Чтобы сохранить код утилизации
private
(еслиIDisposable
объект возвращается из класса)
Является ли это действует практика? Если это так, это .NET-класс, который делает это?
Ничего, чтобы остановить вас писать его самостоятельно, но я должен сказать, что «примерка наконец» является стандартный, гораздо более ясный для разработчиков C# и подходит для вашего прецедента просто отлично. – Baldrick
Вы могли бы сделать это сами. Включите параметр конструктора, который является функцией в вашем объекте, которая реализует IDisosable. Вызовите функцию в OnDispose – Jason
Я не говорю, что согласен с вашим вторым моментом: 'try/finally' - это абсолютно общая конструкция, я сомневаюсь, что любой опытный разработчик предположит, что вы обязательно должны что-то ловить. Но я бы счел ваш синтаксис приемлемым, если он используется последовательно. – Groo