Что должно быть передано как имя объекта при броске ObjectDisposedException?

При реализации IDisposable я undertand, что каждый метод, который нельзя назвать после объекта, был расположен, должен бросить ObjectDisposedException. Но каков стандарт для объекта имени, который должен быть передан конструктору исключения?

45
задан Noldorin 26 December 2009 в 22:26
поделиться

3 ответа

Полагаю, что рекомендуемая практика заключается в том, чтобы бросить следующее:

throw new ObjectDisposedException(GetType().FullName);

Или, включая проверку, эти две строки кода вверху каждого метода, который в них нуждается (очевидно, что сам метод Dispose):

if (this.disposed)
    throw new ObjectDisposedException(GetType().FullName);

Может быть даже полезно перевести это в крошечный метод для удобства использования.

.
47
ответ дан 26 November 2019 в 21:25
поделиться

Даже сама NET-структура здесь не очень последовательна.

Дэвид М. Кин (бывший разработчик команды FxCop в Microsoft) добавил комментарий к документации MSDN для ObjectDisposedException:

Типичное использование этого типа - что-то вроде следующего:

[C#]
private void CheckDisposed()
{
 throw new ObjectDisposedException(GetType().FullName);
}
12
ответ дан 26 November 2019 в 21:25
поделиться

Я не верю, что для этого есть стандарт, я бы вернул тип объекта вместе со строковым содержимым уникального идентификационного поля ("Primary Key" вроде).

.
1
ответ дан 26 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: