CA2202:如何规避警告

本文关键字:警告 何规避 CA2202 | 更新日期: 2023-09-27 18:03:17

我在visual studio 2015中运行代码分析。它显示了一个我不知道如何规避的警告。下面的代码片段显示了该原理。这个程序产生警告CA2202:

"对象'memoryStream'可以在方法中被处理多次".

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

CA2202:如何规避警告

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

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