小编Ter*_*ero的帖子

using-block中的对象初始值设定项生成代码分析警告CA2000

如果我在using-block中使用对象初始值设定项,我会收到有关未正确处理对象的代码分析警告:

CA2000:Microsoft.Reliability:在方法'ReCaptcha.CreateReCaptcha(this HtmlHelper,string,string)'中,对象'<> g__initLocal0'未沿所有异常路径放置.在对对象'<> g__initLocal0'的所有引用都超出范围之前,调用System.IDisposable.Dispose.

这是代码:


    using (var control = new ReCaptchaControl()
    {
        ID = id,
        Theme = theme,
        SkipRecaptcha = false
    })
    {
        // Do something here
    }

如果我不使用对象初始化器,代码分析很高兴:


    using (var control = new ReCaptchaControl())
    {
        control.ID = id;
        control.Theme = theme;
        control.SkipRecaptcha = false; 

        // Do something here
    }

这两个代码块有什么区别?我认为他们会导致相同的IL.或者这是代码分析引擎中的错误?

.net c# visual-studio-2010

18
推荐指数
1
解决办法
1939
查看次数

标签 统计

.net ×1

c# ×1

visual-studio-2010 ×1