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はどのようにそれを解決しますか?
どんな解決策も歓迎します