在Visual Studio 2010中,是否有一种简单的方法可以知道是否需要 ?
e.g。我写代码:
Collection<Prize> prizes = new Collection<Prize>();
我不知道我是否需要调用dispose。
我现在处理它的方法是点击Collection
然后按 F12 ,查找IDisposable
:
public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
然后我递归地下降到每个班级,看看是否有任何工具IDisposable
:
public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<T> : IEnumerable
public interface IEnumerable
public interface IEnumerable
public interface IEnumerable<T> : IEnumerable
public interface IEnumerable
...
注意:请勿将示例与问题混淆。我可能有代码:
SqlConnection conn = new SqlConnection();
然后我重复迭代到祖先类型:
public sealed class SqlConnection : DbConnection, ICloneable public abstract class DbConnection : Component, IDbConnection, IDisposable
所以我发现这堂课需要我打电话给
那就更容易了Dispose
。但如果我没有让F12进入东西
答案 0 :(得分:3)
如果您拥有高级版或终极版代码分析规则CA1001:Types that own disposable fields should be disposable,则会找到需要处理的类型。要启用代码分析,请转到项目属性并选择代码分析选项卡,选择“在构建时启用代码分析”,必须包含Microsoft.Design规则集才能运行CA1001规则。
来自Devexpress的Coderush包含类似的功能。这是标准版的唯一选择。可能还有其他加载项提供类似的功能。
这不能在快递版中完成。