【问题标题】:When I try adding something to the project, Visual Studio just crashes当我尝试向项目中添加内容时,Visual Studio 会崩溃
【发布时间】:2012-06-12 08:29:48
【问题描述】:

我想我在 Visual Studio 中发现了一个可重现的错误。当我尝试将“TestControl”添加到项目中时,Visual Studio 会崩溃。

也许是我的错,我做错了什么。我所做的就是构建,并将控件添加到表单中:

这是项目 (11kb):https://www.dropbox.com/s/dk62j347zmwbll8/VisualStudioCrash.zip

我没有包含任何二进制文件。如果要对其进行测试,请构建它并将“TestControl”添加到表单中。如果您以某种方式管理,请单击控件,然后查看它是否崩溃。

【问题讨论】:

  • "...而且它仍然崩溃"您在进行更正后成功地重建了项目吗?如果不是,Visual Studio 可能仍在使用旧版本的程序集。
  • @Joe 是的,就是这样。我将删除编辑,因为这是我的错误。

标签: c# .net winforms visual-studio-2010


【解决方案1】:

原因很明显:

public string Description
{
    get
    {
        return Description;
    }
    set
    {
        // lblDescription.Text = value;
    }
}

您正在对 Description 属性的 get 访问器进行递归调用。当您将控件放在设计器上时,Visual Studio 将进入无限循环。

【讨论】:

  • 这最终不会引发堆栈溢出吗?无论如何,这很容易做到:) - 有时会导致“难以看到”的错误,因为只有在某些东西试图评估属性时才会执行访问器 - 甚至调试器也会导致它崩溃。擦亮眼睛!
  • @Charleh 我猜 Visual Studio 并没有它应该的那么健壮。我从经验中知道它会优雅地处理控件构造函数中发生的异常,或者在绘制控件时发生的异常......但我猜它在读取属性时不会这样做。
  • 我会看看,但我的 VS2010 似乎在刚加载项目时就冻结了:D 啊,我要爱上 VS2010
  • @David 您确定在进行更改后重新编译了吗?我刚刚添加了与您的编辑一样的标签,无法复制问题;控件已成功添加到表单中。
  • @BradleySmith 哎呀,没有注意到“构建失败”。成功了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2014-04-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
相关资源
最近更新 更多