为什么在Microsoft CLR中需要装箱和拆箱?

时间:2018-12-04 21:02:50

标签: .net types type-conversion clr

在诸如boolint等的Java类型中,原始类型即为原始类型,也就是说,它们与引用类型本质上是不同的,这就是Java提供用于对原始类型进行装箱和拆箱的功能的原因。

但是在Microsoft CLR中,值类型继承自System.ValueType,而其本身继承自System.Object。那么,为什么在Microsoft CLR中需要装箱和拆箱呢?

一个原因可能是ValueType类提供了一些底层的技巧,这些技巧使值类型的处理与C结构有些相似。但是,如果值类型与引用类型有很大不同,为什么要使ValueType继承自Object

如果我说些无知的话,请原谅我。我没有太多的语言设计经验。对我而言,只是CLR的类型系统不像Java那样连贯。

0 个答案:

没有答案