建议使用using语句或调用Dispose()方法来处理IDisposable对象。在Visual Studio中,很难直观地了解某个对象是否是可释放的。 我的问题是:有没有办法在VS中识别IDisposable对象?
这个类使用了一个 StreamWriter,因此实现了 IDisposable。public class Foo : IDisposable { private StreamWriter _Writer; public Foo (String path) { ...
我有几个处理数据库的方法,它们都以调用...开始FaierDbDataContext db = new FaierDbDataContext(); 由于 Linq2Sql DataContext 对象实现了 IDisposable 接口,因此是否应该使用 "using" 呢?using (Fa...
我不敢相信我仍然对此感到困惑,但无论如何,让我们最终解决它: 我有一个类,重写了OnPaint来进行一些绘图。为了加快速度,我在构造函数中预先创建笔刷等对象,以便OnPaint不需要一直创建和释放它们。 现在,我确保始终处理这些对象的释放,但我有一种感觉,我不需要这样做,因为尽管它们实现了...
我该如何确定是否应该在我的接口上扩展IDisposable,还是在实现我的接口的类上实现IDisposable? 我有一个不需要处理任何外部资源的接口,除了其中一个特定的实现。我的选择似乎是: 1) 在要求所有实现都实现Dispose(即使只是空方法)的接口上实现IDisposable。 ...
我正在阅读有关如何实现IDisposable的MSDN文章,但是我对文章中提到的托管资源和本机资源之间的区别感到不确定。 我有一个类,在被处理时必须处理其中的两个字段。我应该将它们视为托管资源(仅在disposing = true时进行处理)还是本机资源?
我看到一些代码使用CancellationTokenRegistration的using子句和Cancellation.Register:using (CancellationTokenRegistration ctr = token.Register(() => wc.CancelAs...
有时候我需要在一个函数内使用多个一次性对象。最常见的情况是使用StreamReader和StreamWriter,但有时更复杂。 嵌套的using语句很快就会增加,并且看起来很丑。 为了解决这个问题,我创建了一个小类,收集IDisposable对象,并在自己被处理时释放它们。 public...
最近我下载了Visual Studio 2013,并对我正在工作的一个项目运行了代码分析。它提出了一些问题,我正在处理其中的一些问题,但其中一个问题是关于我如何使用"using" IDisposable语句。 这是我的代码示例:using (MemoryStream msDecrypt = ...
我之前有Java的经验,现在想学C#。我看过了SqlConnection SqlCommand SqlDataReader IDisposable这篇文章,明白了连接数据库的最佳实践是将SqlConnection、SqlCommand和SqlDataReader包装在一个using块中。 但...