使用使用范围时,是否必须调用Close方法?

Joa*_*nge 7 .net c# dispose

using ( var sw = new StreamWriter ( file ) )
{
    XmlSerializer xs = new XmlSerializer ( typeof ( T ) );
    xs.Serialize ( sw, data );
    sw.Close()
}
Run Code Online (Sandbox Code Playgroud)

我知道你不必打电话Dispose但是你必须打电话给这个Close方法sw吗?

Bal*_*a R 8

没有!你不必.它由"使用"照顾

  • @djacobson:"Close"调用`Dispose`还是反之亦然是一个实现细节.在"StreamWriter"的情况下,它确实是"Close"调用`Dispose`,但在`SqlDataReader`中,`Dispose`方法调用`Close`.(当然,最终结果是相同的.) (5认同)