如何引用自身内部的struct实例?

Day*_*are 0 c# struct

例如,说我想做一个遗传学模拟器,我有这个非常简单的结构

public struct person{
    string name;
    int age;
    string hairColor; 

    person father;
    person mother;
}
Run Code Online (Sandbox Code Playgroud)

这样以后我就可以用Joey.father.haircolor引用这个人Joey父母的头发颜色了吗?我不断收到错误消息:

Struct Member 'person.father' of type 'person' causes a cycle in the struct layout
Run Code Online (Sandbox Code Playgroud)

我是上课的唯一选择吗?为了提高速度,我宁愿使用结构,因为它是所有数据,但是如果没有其他选择,我显然可以使用类。

gen*_*ane 5

由于多种原因,您的Person类型应该是一门课程:

  • 一个结构不能自我引用
  • 如果实例很小且通常是短寿命的或通常嵌入在其他对象中,则应考虑使用结构。似乎并非如此。
  • 如果满足所有这些条件,则应考虑一个struct:1.它在逻辑上表示一个像原始类型一样的值2.它的实例大小小于16字节3. i是不可变的4.不必经常装箱。事实并非如此。
  • 如果使用结构,则两个人不能共享同一父对象,因为按值传递变量。这会产生不良的设计
  • 您对速度感兴趣,但是类的使用比结构快,因为变量是通过引用而不是通过值传递的

  • 确实,这是一个很好的答案。 (2认同)