Kiedy następuje rozpakowywanie, istnieje kopia wartości pola do odpowiedniego typu zmiennej, ale co dzieje się w miejscu pamięci kopii pudełkowej na stercie. Czy kopia pudełkowa pozostaje w tym miejscu i pokrywa pamięć na stercie?Mechanizm Unboxingu
Odpowiedz
Czy kopia pudełkowa pozostaje w tym miejscu i pokrywa pamięć na stercie?
Tak. Po tym wszystkim, nie może być inne odniesienia do niego:
object o1 = 5;
object o2 = o1;
int x = (int) o1;
x = 10;
Console.WriteLine(o2); // Still 5
wartości Pudełkowane działać jak normalne obiekty, w zakresie możliwości zakwalifikowania do zbierania śmieci, gdy nie ma już silne odniesienia do nich.
Tak, oczywiście, podczas rozpakowywania oryginały pozostają nienaruszone.
W dół na poziomie IL dostępne są dwa kody do rozpakowywania: unbox.any
i unbox
.
Według MSDN regarding unbox.any
:
Po nałożeniu na pudełkowej postaci typu wartości, unbox.any instrukcja wyodrębnia wartość zawartą w obj (typu O), a zatem odpowiednik unbox, po którym następuje ldobj.
[...] unbox nie jest wymagane, aby skopiować typ wartości z obiektu. Zazwyczaj po prostu oblicza adres typu wartości, który jest już obecny wewnątrz obiektu pudełkowego .
Kopia pierwotnej wartości może, ale nie musi, ale pierwotna wartość pozostaje nienaruszona.
- 1. Mechanizm kwarcowy .NET MakeDailyTrigger
- 2. Mechanizm ważności operatorów JavaScriptu
- 3. Domyślny mechanizm oceniania ElasticSearch
- 4. RabbitMQ: Mechanizm odzyskiwania połączenia
- 5. powrocie initializer lista mechanizm
- 6. Mechanizm wiązania iniekcji automatycznej
- 7. Java - mechanizm sygnału/slotów
- 8. Mechanizm prosty JavaScript Engine
- 9. Mechanizm dynamicznej manipulatora agregatora
- 10. Wdrażanie przenośny plik mechanizm
- 11. Czy groovy zapewnia mechanizm włączania?
- 12. Jak działa mechanizm usuwania śmieci?
- 13. Jak wyłączyć mechanizm rozszerzenia Java
- 14. Jawny mechanizm blokujący w SQLite
- 15. Mechanizm blogowania na bazie Ruby
- 16. mechanizm uzyskać elementu z listy
- 17. mechanizm blokujący Mifare Classic 1K
- 18. java string mechanizm buforowania hashcode
- 19. Szybki mechanizm komunikacji między wątkami
- 20. async/czekaj na mechanizm anulowania
- 21. Zaokrąglanie Mechanizm do najbliższego 0,05
- 22. Czy potrzebny jest mechanizm Class.forName()?
- 23. Lekki mechanizm raportowania w języku Java
- 24. Czy OpenMP obsługuje mechanizm kradzieży pracy?
- 25. Jak zaimplementować mechanizm przeglądania widoku dla PagerAdapter?
- 26. Mechanizm rozpoznawania mowy o otwartym kodzie źródłowym
- 27. Mechanizm ładujący Composer vs Symfony 2
- 28. Android Lekki mechanizm HTML Engine Template
- 29. Mechanizm Python - dwa przyciski typu "wyślij"
- 30. Aplikacja a pamięć podręczna: mechanizm blokowania