Using for disposable 类型的正确用法

Correct usage of Using for disposable types

我有这个代码

using(MyStopWatch st= new MyStopWatch())
{
St.start();
St.stop();
}

当我 运行 fxcop 时出现 CA1001 错误 并且

MyStopWatch st= null;
using( st= new MyStopWatch())
{
St.start();
St.stop();
}

分析时没有给出任何fxcop规则错误,这两种情况有什么区别,第二次使用是否造成内存泄漏?使用块是否没有按我预期的方式运行?

在我看来像是误报。就处理而言,您的两个代码示例之间应该没有区别。

不过,建议使用第一个示例,因为您可能不希望在使用范围之外使用已处置的对象。