在VS2010 </myclass>中声明List <myclass>属性的问题

时间:2011-03-02 06:02:23

标签: c# list properties

您好 我创建了两个usercontrol(线路和工作站)并在THE LINE usercontrol中使用STATION,最后我以某种形式使用“LINE”用户控件。

在设计时没有问题,但是我想在表单中添加“Line”usercontrol。 在这种情况下,visual studio停止工作然后关闭。

我评论了我的代码中的一些更改,并发现该问题来自属性中有关站点数量的问题。我评论它每件事情都好,但我需要这个属性。 这是我的代码

[Serializable]
public class ActionPoint
{
    public string CarInfo;
    public string RightStationName;
    public string RightStationInfo;
    public string LeftStationName;
    public string LeftStationInfo;

    public ActionPoint()
    {
    }
}

并在我的属性中使用此类。我使用此属性来定义行。

public class Line : UserControl
{ 
   public List<ActionPoint> Stations
   {
   get { return Stations; }
   set { Stations = value; }
   }
}

2 个答案:

答案 0 :(得分:4)

该代码是递归的(当你试图获取或设置它永远存在的属性时 - 遵循代码......); IDE 可能试图在属性网格中显示它,或者为designer.cs编写代码 - 并且正在达到友好的堆栈溢出异常。

适当的实施将是:

private List<ActionPoint> stations = new List<ActionPoint>();
public List<ActionPoint> Stations { get { return stations; } }

答案 1 :(得分:1)

我认为属性的问题,而不是列表,试试这个。

List<ActionPoint> _Stations;
public List<ActionPoint> Stations
{
   get { return _Stations; }
   set { _Stations = value; }
}

public List<ActionPoint> Stations
{
   get;
   set;
}