在实现IDisposable时,我认为在对象被处置后不应该调用的每个方法都应抛出ObjectDisposedException
。但是应该传递给异常构造函数的name对象的标准是什么?
答案 0 :(得分:44)
我认为建议的做法是抛出以下内容:
throw new ObjectDisposedException(GetType().FullName);
或者包括检查,这两行代码位于每个需要它的方法的顶部(显然不是Dispose
方法本身):
if (this.disposed)
throw new ObjectDisposedException(GetType().FullName);
甚至可能有助于将其重构为一种可用的小方法。
答案 1 :(得分:12)
即使是.NET Framework本身也不是很一致。
David M. Kean(微软FxCop团队的前开发人员)在MSDN documentation for the ObjectDisposedException添加了评论:
此类型的典型用法如下:
[C#] private void CheckDisposed() { throw new ObjectDisposedException(GetType().FullName); }
答案 2 :(得分:1)
我不相信有一个标准,我会返回对象的类型以及唯一标识字段的字符串内容(各种“主键”)。