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