-2

所以我正在为我的程序制作一个自定义控件。我去添加一个字符串属性,但是当我尝试更改它时,C# 崩溃了。这是我正在使用的代码

private string series = "None";
[Description("Tells What the Series is")]
[Category("Element")]
[DefaultValue("None")]
public string Series
{
    get { return series; }
    set { Series = value; }
}
4

4 回答 4

8

您正在递归设置它。

private string series = "None";
[Description("Tells What the Series is")]
[Category("Element")]
[DefaultValue("None")]
public string Series
{
   get { return series; }
   set { series = value; }  // notice series not Series
}

我可以建议使用自动属性吗?

[Description("Tells What the Series is")]
[Category("Element")]
[DefaultValue("None")]
public string Series
{
    get; set;
}

您必须在构造函数中初始化该值。

于 2013-04-01T19:47:05.980 回答
2

您正在尝试在属性 Series的设置器中递归地设置属性。这将导致一个StackOverflowException.

set { series = value; }

是你想要的。

于 2013-04-01T19:47:09.080 回答
2

Yoy 在您的应用程序中有一个无限循环,因此我猜它会因 stackoverflow 错误而崩溃。

   set { Series = value; }

应该

   set { series = value; }
于 2013-04-01T19:47:26.953 回答
2

您试图在“集合”中设置属性值本身,从而创建无限递归。

改变

set { Series = value; }

set { series = value; }

(小写 s)。

于 2013-04-01T19:47:34.920 回答