在 C# 中,任何用户定义struct
都会自动成为 System.Struct 的子类, System.ValueType
而System.Struct System.ValueType
是System.Object
.
但是当我们将一些结构分配给对象类型引用时,它会被装箱。例如:
struct A
{
public int i;
}
A a;
object obj = a; // boxing takes place here
所以我的问题是:如果A
是 的后代System.Object
,编译器不能将其向上转换为对象类型而不是装箱吗?