1

我有这个代码

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

当我运行 fxcop 和

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

哪个在分析时没有给出任何 fxcop 规则错误,这两种情况有什么区别,第二种用法是否会造成内存泄漏?使用块的行为不符合我的预期吗?

4

1 回答 1

2

对我来说似乎是一个误报。就处置而言,您的两个代码示例之间应该没有区别。

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

于 2018-04-24T00:38:19.673 回答