C#-自参考通用集合

时间:2019-01-31 09:40:31

标签: c#

如果我们创建一个类象下面这样它会抛出一个错误? 由于StudentCollection指的是同一类。 哪个是正确的?

1。

public class StudentDetail
    {
        public Collection<StudentDetail> StudentCollection { get; set; }
        public string StudentName { get; set; }
        public Guid StudentID { get; set; }
        public int RollNo { get; set; }
        public Guid ClassID { get; set; }
    }

2。

public class StudentDetail
        {
            public Collection<studentinfo> StudentCollection { get; set; }

        }

Public class studentinfo
{
public string StudentName { get; set; }
            public Guid StudentID { get; set; }
            public int RollNo { get; set; }
            public Guid ClassID { get; set; }
}

1 个答案:

答案 0 :(得分:6)

是的,没有问题。您可以以与在类型中具有相同类型的成员相同的方式在类中具有Collection<ThisClass>。例如,这也是完全有效的:

class Person
{
    Person Mother { get; set; }
}

所以问题仍然存在,如果它是最好的做法。我认为不是,因为您说每个实例也是其自身的集合。您应该有一个像这样保存它的类:

class University
{
    IEnumerable<StudentInfo> Students { get; set; }
}

但是,如果我们举第一个例子,有时可能是正确的:

class Person
{
    Person Mother { get; set; }
    IEnumerable<Person> Children {get; set; }
}