如果可以像在 C# 中那样将一组指向子结构的指针放在 C# 中的不安全结构中,那么构建复杂的数据结构而无需每个节点拥有一个对象的开销会容易得多,而且耗时更少,并且语法更清晰,可读性更强。
为什么不安全结构中的固定数组只允许由“值类型”而不是指针组成,是否有深层的架构原因?
我假设只有在结构中显式命名的指针必须是故意削弱语言的决定,但我找不到任何关于为什么会这样的文档,或者不允许在结构中使用指针数组的原因,因为我会假设垃圾收集器不应该关心标记为不安全的结构中发生了什么。
相比之下,Digital Mars 的 D 优雅地处理结构和指针,我错过了不能快速开发简洁的数据结构;通过在 C# 中使引用抽象化,语言似乎已经消除了很多功能,即使指针至少在营销意义上仍然存在。
也许我期望语言随着时间的推移在有效地表示复杂数据结构方面变得更加强大是错误的。