【发布时间】:2015-04-12 20:14:11
【问题描述】:
以下代码对 Main 的第一行产生了 CA2000 ("Dispose objects before lost scope") 违规,但不是第二行。我真的很喜欢第二行的 CA2000 违规,因为这是我工作的大型代码库中经常发现的(明显简化的)模式。
有谁知道为什么第二行没有产生违规?
public static void Main()
{
new Disposable();
MakeDisposable();
}
private static Disposable MakeDisposable() { return new Disposable(); }
private sealed class Disposable : IDisposable
{
public void Dispose()
{
}
}
【问题讨论】:
-
尝试将您的 Make 方法重命名为 Create,看看是否会有所不同。
-
还有...您使用的是哪个版本的 Visual Studio 和/或 FxCop?
-
我试着即兴创作一些对你有用的东西,但下次请尝试制作一个更具描述性的标题。
-
对不起,我应该提一下,这是 Visual Studio 2013 的。
标签: c# code-analysis fxcop