2016-08-20 69 views
1

我在visual studio 2015中通​​過代碼分析運行我的代碼。它顯示了一條警告,我不知道如何繞過。以下片段顯示了原理。該程序產生警告CA2202:CA2202:如何規避警告?

「對象'memoryStream'可以在方法中多次處理...」。根據MSDNStreamWriter.Close

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

回答

2

的方法的描述是「關閉當前StreamWriter對象和基礎流。」。因此,memoryStream.Close()streamWriter.Close()關閉底層流。這是由編譯器診斷並建議避免。此外請確保您致電streamWriter.Close(),因爲此方法刷新streamWriter中的緩衝區。

此外,using關鍵字(作用域包括最終調用.Dispose()/ .Close())強烈建議這些類型的操作。請參閱以下MSDN關於典型用法的頁面。