Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 声明列表时出现问题<;myClass>;VS2010中的财产_C#_List_Properties - Fatal编程技术网

C# 声明列表时出现问题<;myClass>;VS2010中的财产

C# 声明列表时出现问题<;myClass>;VS2010中的财产,c#,list,properties,C#,List,Properties,嗨 我创建了两个usercontrol(line和station),并在line usercontrol中使用station,最后以某种形式使用“line”usercontrol 在设计时并没有问题,但当我想在表单中添加“Line”usercontrol时。 在本例中,VisualStudio停止工作,然后关闭 我对代码中的一些更改进行了注释,发现问题出在排队的站点数量上。当我评论它时,一切都正常,但我需要这个属性。 这是我的密码 [Serializable] public class Acti

嗨 我创建了两个usercontrol(line和station),并在line usercontrol中使用station,最后以某种形式使用“line”usercontrol

在设计时并没有问题,但当我想在表单中添加“Line”usercontrol时。 在本例中,VisualStudio停止工作,然后关闭

我对代码中的一些更改进行了注释,发现问题出在排队的站点数量上。当我评论它时,一切都正常,但我需要这个属性。 这是我的密码

[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不,您不能-这不会编译(no
set
)。即使是这样,也不会导致(预期的)字段初始化。我希望您已经猜到,如果需要,可以在速记属性中包含“set;”。@Furqan“如果我需要”-嗯?这不取决于我。。。撇开编译器规则不谈,这仍然不能解决(非常谨慎的)字段初始化问题。此外,您可以使用属性定义的速记版本,即public List Stations{get;}@Furqan不,您不能-这不会编译(no
set
)。即使是这样,也不会导致(预期的)字段初始化。我希望您已经猜到,如果需要,可以在速记属性中包含“set;”。@Furqan“如果我需要”-嗯?这不取决于我。。。撇开编译器规则不谈,这仍然不能解决(非常慎重的)字段初始化问题。我将用
\u station
替换
\u station
,或者只是
Stations
;)@Oscar meh,对于一个私有领域,任何命名约定基本上都是可以接受的。每个人都有自己的…@马克只是开玩笑而已。看到结尾的笑脸;)我会用
\u station
替换
\u station
,或者只是
Stations
;)@Oscar meh,对于一个私有领域,任何命名约定基本上都是可以接受的。每个人都有自己的…@马克只是开玩笑而已。看到结尾的笑脸;)