我在理解 .NET 中的值类型表示时遇到问题。
每个值类型都派生自 System.ValueType 类,那么这是否意味着值类型是一个类?
例如,如果我写:
int x = 5;
这意味着我创建了一个实例System.Int32
类an'将其写入变量x??
System.ValueType 类实际上只是一个“元”类,其内部处理方式与普通类不同。结构和基元类型隐式继承 System.ValueType,但该类型在运行时实际上并不存在,它只是程序集标记一个类应被视为值类型结构并采用按值传递语义的一种方式。
与其他答案相反,值类型并不总是在堆栈上分配。当它们是类中的字段时,它们位于堆上,就像实例化该对象时类数据的其余部分一样。在迭代器或闭包内部使用时,局部变量也可以提升到隐式类中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)