【问题标题】:CA2202: How to circumvent the warning?CA2202:如何规避警告?
【发布时间】:2016-08-20 10:32:48
【问题描述】:

我在 Visual Studio 2015 中通过代码分析运行了我的代码。它显示了一个我不知道如何规避的警告。下面的 sn-p 显示了原理。该程序产生警告 CA2202:

“对象'memoryStream'可以在方法中多次释放...”。

private void tt()
{
    MemoryStream memoryStream = null;
    StreamWriter streamWriter = null;
    memoryStream = new MemoryStream();
    streamWriter = new StreamWriter(memoryStream, Encoding.Unicode);
    memoryStream.Close();
    streamWriter.Close();
}

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    StreamWriter.Close根据MSDN的方法描述为“关闭当前StreamWriter对象和底层流”。因此,memoryStream.Close()streamWriter.Close() 关闭底层流。这已由编译器诊断并建议避免。还要确保调用streamWriter.Close(),因为此方法会刷新streamWriter 中的缓冲区。

    对于此类操作,强烈建议使用 using 关键字(范围包括对 .Dispose() / .Close() 的最终调用)。典型用法请参考以下MSDN页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 2021-02-04
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      相关资源
      最近更新 更多