自定义控件字符串属性C#

时间:2013-04-01 19:45:49

标签: c#

所以我正在为我的程序制作一个自定义控件。我去添加一个字符串属性但是当我试图改变它时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 个答案:

答案 0 :(得分:9)

您以递归方式设置它。

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;
}

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

答案 1 :(得分:2)

您正尝试在属性的setter中递归设置属性Series。这将导致StackOverflowException

set { series = value; }

是你想要的。

答案 2 :(得分:2)

你的应用程序中有一个无限循环,因此我猜它崩溃了一个stackoverflow错误。

   set { Series = value; }

应该是

   set { series = value; }

答案 3 :(得分:2)

你试图在“set”中设置属性值本身,从而创建一个无限递归。

更改

set { Series = value; }

set { series = value; }

(小写s)。