我正在运行VS2013在我的一个项目上的代码分析,并碰到了“CA1001: 拥有可处理字段的类型应该是可处理的”警告。 一个简单的例子可以生成警告(假设DisposableClass
实现了IDisposable
):
class HasDisposableClassField
{
private DisposableClass disposableClass;
}
然而,将该字段变量转换为属性后,即使出现属性将由类实例化的情况,也不再生成警告:
class HasDisposableClassProperty
{
private DisposableClass disposableClass { get; set; }
public HasDisposableClassProperty()
{
disposableClass = new DisposableClass();
}
}
在第一种情况下,很明显这个类应该实现IDisposable模式,并适当地处理其disposableClass字段。我的问题是:第二种情况没有警告是否是代码分析工具的限制?即使缺少警告,这个类是否仍然应该实现IDisposable并处理属性的释放?
IDisposable
属性并调用Dispose
的类吗? - Gabe