2013-02-13 124 views
0

我对C#参考中的几条语句有些困惑。值类型和参考类型

  1. Object是引用类型
  2. Struct是数值类型
  3. Struct从对象类衍生

为什么不应该结构或任何其他值类型也可以在此引用类型案件。

纠正我,如果我的任何假设是错误的。

+1

相关http://stackoverflow.com/questions/13564090/how-why-possible-a-value-type-derives-from-a-reference-type – 2013-02-13 19:52:05

+5

这个话题多年来已经讨论过很多次了。我很惊讶你没有找到任何这些讨论。 – 2013-02-13 19:52:15

+0

检查以下[链接](https://stackoverflow.com/a/42606778/4156229)该示例是用java给出的,但它可能有帮助 – 2017-09-19 09:53:42

回答

0

因为它是规范的一部分。所以,编译器团队正在强制这一点。我相信有一篇文章谈论这是一个实现细节,但目前找不到它。

您也许还想看看Struct/Heap Storage question。这可能会帮助清理一些事情。

0

这是因为Struct是一个特殊情况,CLR以特殊方式处理它。