Wil*_*elm 45 .net idisposable objectdisposedexception
在实现IDisposable时,我认为在对象被处理后不应该调用的每个方法都应该抛出ObjectDisposedException
.但是应该传递给异常构造函数的name对象的标准是什么?
Nol*_*rin 47
我相信建议的做法是抛出以下内容:
throw new ObjectDisposedException(GetType().FullName);
Run Code Online (Sandbox Code Playgroud)
或者包括检查,这两行代码位于每个需要它的方法的顶部(显然不是Dispose
方法本身):
if (this.disposed)
throw new ObjectDisposedException(GetType().FullName);
Run Code Online (Sandbox Code Playgroud)
甚至可能有助于将其重构为可用性的微小方法.
Alb*_*bic 12
甚至.NET Framework本身也不是很一致.
David M. Kean(微软FxCop团队的前开发人员)在MSDN文档中添加了对ObjectDisposedException的评论:
此类型的典型用法如下所示:
Run Code Online (Sandbox Code Playgroud)[C#] private void CheckDisposed() { throw new ObjectDisposedException(GetType().FullName); }
归档时间: |
|
查看次数: |
3861 次 |
最近记录: |