Одно из правил для реализации метода Dispose говорит:.Реализация Одноразовая шаблон правильно - авто Реализуемый свойства
«Бросьте ObjectDisposedException из методов экземпляра на этом типе (кроме Dispose), когда ресурсы уже расположенным Это правило делает не применяются к методу Dispose, потому что он должен быть вызван несколько раз, не выбрасывая исключение ».
См: http://msdn.microsoft.com/en-us/library/b1yfkh5e.aspx
Означает ли это, что если я хочу, чтобы правильно реализовать свойства, я не могу использовать авто Реализуемого свойства? Нужны ли свойства, реализующие его как этот?
private bool _property;
public bool Property
{
get
{
if(disposed) throw new ObjectDisposedException ("MyClass");
return _property;
}
set
{
if(disposed) throw new ObjectDisposedException ("MyClass");
_property=value;
}
}
Согласен. Когда вы просто возвращаете примитивные значения, такие как целые числа, булевы, цвет: не утруждайте себя проверкой полного удаления. Однако, когда это свойство возвращает какой-либо объект, который нельзя разумно использовать после его удаления, выполните полную проверку. – Steven