您好 我创建了两个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; }
}
}
答案 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;
}