正确使用一次性使用类型

时间:2018-04-24 00:00:52

标签: c# fxcop microsoft.codeanalysis ca1001

我有这段代码

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

当我运行fxcop时,这给了我CA1001错误 并且

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

在分析中没有给出任何fxcop规则错误,这两种情况之间有什么区别,第二种用法是否会造成内存泄漏?使用块的方式与我期望的方式不一样吗?

1 个答案:

答案 0 :(得分:2)

对我来说看起来像是误报。对于处理方式,两个代码示例之间应该没有区别。

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