31得票9回答
在Visual Studio中如何识别一次性对象?

建议使用using语句或调用Dispose()方法来处理IDisposable对象。在Visual Studio中,很难直观地了解某个对象是否是可释放的。 我的问题是:有没有办法在VS中识别IDisposable对象?

29得票7回答
我是否正确地实现了IDisposable接口?

这个类使用了一个 StreamWriter,因此实现了 IDisposable。public class Foo : IDisposable { private StreamWriter _Writer; public Foo (String path) { ...

29得票1回答
C# Linq-to-Sql - DataContext是否应使用IDisposable进行处理

我有几个处理数据库的方法,它们都以调用...开始FaierDbDataContext db = new FaierDbDataContext(); 由于 Linq2Sql DataContext 对象实现了 IDisposable 接口,因此是否应该使用 "using" 呢?using (Fa...

29得票11回答
我需要在托管对象上调用Dispose()方法吗?

我不敢相信我仍然对此感到困惑,但无论如何,让我们最终解决它: 我有一个类,重写了OnPaint来进行一些绘图。为了加快速度,我在构造函数中预先创建笔刷等对象,以便OnPaint不需要一直创建和释放它们。 现在,我确保始终处理这些对象的释放,但我有一种感觉,我不需要这样做,因为尽管它们实现了...

29得票3回答
确定 IDisposable 应该扩展接口还是被实现在实现该接口的类中

我该如何确定是否应该在我的接口上扩展IDisposable,还是在实现我的接口的类上实现IDisposable? 我有一个不需要处理任何外部资源的接口,除了其中一个特定的实现。我的选择似乎是: 1) 在要求所有实现都实现Dispose(即使只是空方法)的接口上实现IDisposable。 ...

28得票3回答
在处理时,托管资源和本机资源有什么区别?(.NET)

我正在阅读有关如何实现IDisposable的MSDN文章,但是我对文章中提到的托管资源和本机资源之间的区别感到不确定。 我有一个类,在被处理时必须处理其中的两个字段。我应该将它们视为托管资源(仅在disposing = true时进行处理)还是本机资源?

28得票2回答
为什么存在CancellationTokenRegistration并且为什么它实现了IDisposable接口?

我看到一些代码使用CancellationTokenRegistration的using子句和Cancellation.Register:using (CancellationTokenRegistration ctr = token.Register(() => wc.CancelAs...

27得票6回答
摆脱嵌套的using(...)语句

有时候我需要在一个函数内使用多个一次性对象。最常见的情况是使用StreamReader和StreamWriter,但有时更复杂。 嵌套的using语句很快就会增加,并且看起来很丑。 为了解决这个问题,我创建了一个小类,收集IDisposable对象,并在自己被处理时释放它们。 public...

27得票5回答
在C#中嵌套"using"语句是否存在问题?

最近我下载了Visual Studio 2013,并对我正在工作的一个项目运行了代码分析。它提出了一些问题,我正在处理其中的一些问题,但其中一个问题是关于我如何使用"using" IDisposable语句。 这是我的代码示例:using (MemoryStream msDecrypt = ...

26得票5回答
SqlConnection的最佳重用实践

我之前有Java的经验,现在想学C#。我看过了SqlConnection SqlCommand SqlDataReader IDisposable这篇文章,明白了连接数据库的最佳实践是将SqlConnection、SqlCommand和SqlDataReader包装在一个using块中。 但...