C# 声明列表时出现问题<;myClass>;VS2010中的财产
嗨 我创建了两个usercontrol(line和station),并在line usercontrol中使用station,最后以某种形式使用“line”usercontrol 在设计时并没有问题,但当我想在表单中添加“Line”usercontrol时。 在本例中,VisualStudio停止工作,然后关闭 我对代码中的一些更改进行了注释,发现问题出在排队的站点数量上。当我评论它时,一切都正常,但我需要这个属性。 这是我的密码C# 声明列表时出现问题<;myClass>;VS2010中的财产,c#,list,properties,C#,List,Properties,嗨 我创建了两个usercontrol(line和station),并在line usercontrol中使用station,最后以某种形式使用“line”usercontrol 在设计时并没有问题,但当我想在表单中添加“Line”usercontrol时。 在本例中,VisualStudio停止工作,然后关闭 我对代码中的一些更改进行了注释,发现问题出在排队的站点数量上。当我评论它时,一切都正常,但我需要这个属性。 这是我的密码 [Serializable] public class Acti
[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; }
}
}
public类行:UserControl
{
公共列表站
{
获取{返回站;}
设置{Stations=value;}
}
}
该代码是递归的(当您尝试获取或设置该属性时,它将永远持续-遵循代码;IDE可能正在尝试在属性网格中显示它,或者为designer.cs编写代码,并且遇到了友好的堆栈溢出异常
适当的执行将是:
private List<ActionPoint> stations = new List<ActionPoint>();
public List<ActionPoint> Stations { get { return stations; } }
private List stations=new List();
公共列表站{获取{返回站;}
该代码是递归的(当您尝试获取或设置该属性时,它将永远持续-遵循代码;IDE可能正在尝试在属性网格中显示它,或者为designer.cs编写代码,并且遇到了友好的堆栈溢出异常
适当的执行将是:
private List<ActionPoint> stations = new List<ActionPoint>();
public List<ActionPoint> Stations { get { return stations; } }
private List stations=new List();
公共列表站{获取{返回站;}
我认为问题在于属性,而不是列表,试试这个
List<ActionPoint> _Stations;
public List<ActionPoint> Stations
{
get { return _Stations; }
set { _Stations = value; }
}
List\u站点;
公共列表站
{
获取{return\u Stations;}
设置{u站=值;}
}
或
公共列表电台
{
得到;
设置
}
我认为问题在于属性,而不是列表,试试这个
List<ActionPoint> _Stations;
public List<ActionPoint> Stations
{
get { return _Stations; }
set { _Stations = value; }
}
List\u站点;
公共列表站
{
获取{return\u Stations;}
设置{u站=值;}
}
或
公共列表电台
{
得到;
设置
}
此外,您可以使用属性定义的速记版本,即公共列表站{get;}@Furqan不,您不能-这不会编译(noset
)。即使是这样,也不会导致(预期的)字段初始化。我希望您已经猜到,如果需要,可以在速记属性中包含“set;”。@Furqan“如果我需要”-嗯?这不取决于我。。。撇开编译器规则不谈,这仍然不能解决(非常谨慎的)字段初始化问题。此外,您可以使用属性定义的速记版本,即public List Stations{get;}@Furqan不,您不能-这不会编译(noset
)。即使是这样,也不会导致(预期的)字段初始化。我希望您已经猜到,如果需要,可以在速记属性中包含“set;”。@Furqan“如果我需要”-嗯?这不取决于我。。。撇开编译器规则不谈,这仍然不能解决(非常慎重的)字段初始化问题。我将用\u station
替换\u station
,或者只是Stations
;)@Oscar meh,对于一个私有领域,任何命名约定基本上都是可以接受的。每个人都有自己的…@马克只是开玩笑而已。看到结尾的笑脸;)我会用\u station
替换\u station
,或者只是Stations
;)@Oscar meh,对于一个私有领域,任何命名约定基本上都是可以接受的。每个人都有自己的…@马克只是开玩笑而已。看到结尾的笑脸;)