C# 当类具有流类型的属性时,清除问题
我有一个具有流类型属性的类,如下所示:C# 当类具有流类型的属性时,清除问题,c#,idisposable,C#,Idisposable,我有一个具有流类型属性的类,如下所示: public class Csv { private StreamReader streadReder; private StreamWriter streamWriter; } 它是否需要实现IDisposable?如果需要,请提供链接。由于刺穿IDisposable似乎有点让人困惑,如果Csv类型拥有流资源并负责它们的处置,那么它也应该实现IDisposable并处置值 public class Csv : IDisposable {
public class Csv
{
private StreamReader streadReder;
private StreamWriter streamWriter;
}
它是否需要实现
IDisposable
?如果需要,请提供链接。由于刺穿IDisposable
似乎有点让人困惑,如果Csv
类型拥有流资源并负责它们的处置,那么它也应该实现IDisposable
并处置值
public class Csv : IDisposable {
...
public void Dispose() {
streamReader.Dispose();
streamWriter.Dispose();
}
}
是的,在这种情况下应该实现IDisposable。代码分析中甚至有一个设计警告: 最简单的实现可能如下所示:
public class Csv : IDisposable
{
private StreamReader streadReader;
private StreamWriter streamWriter;
public void Dispose()
{
if (streadReader != null)
{
streadReader.Dispose();
}
if (streamWriter != null)
{
streamWriter.Dispose();
}
}
}
听起来像我在想什么。谢谢你如何进行分析?我正在使用VS 2012?我运行了代码分析,但没有任何警告。还有其他类似的工具吗,比如FoxCop,你会推荐它吗?你可以在项目属性的“代码分析”选项卡上选择不同的规则集。例如,使用“Microsoft Basic Design Guidence Rules”会出现此警告。在我们的项目中,我们使用了带有ReSharper的StyleCop,这有助于保持代码质量和样式一致性的合理水平。我是否遗漏了什么。即使我使用“Microsoft所有规则”,也无法得到该警告。