Warum structs werden müssen, boxed?

In C#, beliebige Benutzer-definierte struct wird automatisch eine Unterklasse von System.Struct System.ValueType und System.Struct System.ValueType ist eine Unterklasse von System.Object.

Aber wenn wir vergeben einige struct Objekt-Typ Referenz-es wird geboxt. Zum Beispiel:

struct A
{
    public int i;
}

A a;
object obj = a;  //boxing takes place here

Also meine Frage ist: wenn A ist ein Nachkomme von System.Object, kann nicht der compiler up-cast es um Objekt-Typ anstelle von Boxen?

InformationsquelleAutor Red Hyena | 2009-12-30
Schreibe einen Kommentar