理解悖论:
在 C# 中,结构(值类型)可以从类继承,这似乎与它们固有的值复制行为相矛盾。 本文阐明了这种继承是如何在不影响值类型语义的情况下工作的。
C# 允许结构体从类继承,要求所有结构体最终都派生自 System.ValueType
,而 System.Object
本身又继承自
公共语言运行时 (CLR) 根据内存管理来区分值类型和引用类型。 值类型按值复制,而引用类型按引用复制。无论继承如何,这种根本差异仍然存在。
从引用类型继承不会影响值类型的核心特征:值复制。 值类型的实例始终按值复制,无论其继承层次结构如何。
Object
想象一下红色框(值类型)和蓝色框(引用类型)。 存在三个特殊的蓝色框:ValueType
、Enum
和 ValueType
。所有红色框都位于 Enum
或
以上是C# 中的值类型如何继承对象(引用类型),同时保持值复制行为?的详细内容。更多信息请关注PHP中文网其他相关文章!