Kategoria: C# Dodane przez marcin90

Co oznaczają pojęcia boxing i unboxing?

1 odpowiedź

2 0 Dodane 10-06-2018 przez marcin90

Przed zapoznaniem się z treścią tej odpowiedzi warto znać odpowiedź na poniższe pytanie:
Jaka jest różnica pomiędzy typami wartościowymi a referencyjnymi?


Boxing oraz unboxing mają dużo wspólnego ze stertą oraz stosem. Otóż na stercie przechowywane są dane typów referencyjnych a na stosie typów wartościowych.
Boxing (opakowywanie) to nic innego jak konwersja typów wartościowych do typów referencyjnych. Unboxing to operacja przeciwna - konwersja typu referencyjnego do typu wartościowego.

int value = 5; // typ wartościowy
Object boxedValue = value; // konwersja na typ referencyjny (boxing)
int unboxedValue = (int)boxedValue // konwersja typu referencyjnego na wartościowy (unboxing)

Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.