使用 C# 有一段时间了,我一直在想:
public static void Main(Strings[] args){
...
Person p = new Person("Bob",23,"Male");
List<Object> al = new List<Object>();
al.Add(p);
Person p = (Person)al[0];
}
Collection中装箱和拆箱的典型示例,但问题是:当装箱变量时,CLR在GC堆中分配了额外的空间并将p视为对象,但Person类比System.Object“更大”
所以据此,可能会丢失 Person 类额外拥有的一些值,拆箱后将无法获取一些数据。
CLR 如何解决这个问题?
欢迎任何解决方案