Ich habe Microsofts Class Room Training Mater gelesen. Ich lese die folgendenUnboxing erstellt keine Kopie des Werts. Ist das richtig?
Unboxing Unboxing ist das Gegenteil von Boxen. Dies ist die explizite Konvertierung eines Referenztyps in einen Werttyp. Unboxing ruft einen Verweis auf den in einem Objekt enthaltenen Werttyp ab. Bei einer Unboxing-Operation wird die Objektinstanz überprüft, um sicherzustellen, dass die Instanz des Objekts ein eingerahmter Wert des angegebenen Werttyps ist. Dann wird der Wert aus der Instanz in die Werttypvariable kopiert.
**
Unboxing gibt einen Zeiger auf die Daten innerhalb eines Box-Objekt und keine Kopie der Daten erstellen.
**
ich wirklich die Linie nicht verstehen, dass ich hervorgehoben. es sagt, dass wenn Boxed Objekt unboxing, erstellt es keine Kopie, es gibt nur einen Zeiger zurück. Wenn das wahr ist, wird eine Werttypvariable in Heap zugewiesen, oder?
Ram
Das macht Sinn. Vielen Dank – RAM
Gibt es irgendwo den Zeiger auf den ungekasten Wert kann direkt verwendet werden, ohne den Wert zu kopieren? – RAM
@RAM: Ich denke nicht, zumindest nicht so einfach. Vielleicht können Sie 'fixed' verwenden, um das Objekt im Speicher anzuheften, und einen Zeiger auf den Wert erhalten, aber das wäre viel komplizierter als nur den Wert zu kopieren. Die Werte, die gerahmt werden, sind klein. Es gibt also keinen Grund, das Kopieren zu vermeiden. – Guffa