列表中的StackoverflowException

时间:2014-04-19 18:03:09

标签: c# list class infinite-loop stack-overflow

这段代码有什么问题?我一直得到StackOverlflowException ..

public class Places
{
    public string Title { get; set; }
    public string Content { get; set; }
    public double Latitude { get; set; }
    public double Longtitude { get; set; }    


    public List<Places> allPlaces = new List<Places>
    {
        new Places { Title = "test", Content = "test\ntest", Latitude = 52.23057, Longtitude = 5.84582 },
        new Places { Title = "testt", Content = "dfsdf", Longtitude = 52.35589, Latitude = 4.92119 }
    };
}

1 个答案:

答案 0 :(得分:5)

由于allPlaces是一个实例字段,因此在构造Places对象时会初始化它。所以你创建了一个Places对象,它创建了一个List<Places>,它在它的集合初始化器中创建了另一个Places对象,它创建了另一个List<Places>自己的...结束递归。

您可能想要创建一个静态allPlaces字段,该字段只能创建一个列表。将static关键字添加到字段中,如下所示:

public static List<Places> allPlaces = ...