Opakowywanie
Język C# daje nam możliwość zamiany zmiennej typu prostego na obiekt i vice versa. Obie konwersje są realizowane za pomocą opakowywania (ang. boxing) i odpakowywania (ang. unboxing).
Opakowaywanie jest prostym procesem przypisania wartości do zmiennej typu object:
Zmienna i jest tworzona na stosie i jest reprezentowana przez wartość, natomiast obiekt o na stosie ma tylko adres (wskaźnik) na spakowaną wartość i jej typ znajdujące się na stercie.
Operacja odwrotna czyli odpakowywanie jest realizowane poprzez rzutowanie:
Niemożliwe jest odpakowywanie w następujący sposób:
Obydwa przypadki wygenerują błąd, ponieważ przy odpakowywaniu musi być zachowana zgodność typów.
Operacje pakowania mają wpływ na wydajność, ponieważ zajmują trochę czasu, a wykonanie operacji na wartościach zapakowanych wymaga więcej cykli procesora niż na wartościach niezapakowanych.
Zobacz też:
Opakowaywanie jest prostym procesem przypisania wartości do zmiennej typu object:
Zmienna i jest tworzona na stosie i jest reprezentowana przez wartość, natomiast obiekt o na stosie ma tylko adres (wskaźnik) na spakowaną wartość i jej typ znajdujące się na stercie.
Operacja odwrotna czyli odpakowywanie jest realizowane poprzez rzutowanie:
Niemożliwe jest odpakowywanie w następujący sposób:
Obydwa przypadki wygenerują błąd, ponieważ przy odpakowywaniu musi być zachowana zgodność typów.
Operacje pakowania mają wpływ na wydajność, ponieważ zajmują trochę czasu, a wykonanie operacji na wartościach zapakowanych wymaga więcej cykli procesora niż na wartościach niezapakowanych.
Zobacz też:
kliszaq dnia 17-09-2009 21:42
"zamiany zmiennej typu prostego" raczej powiedziałbym tutaj zamiany zmiennej typu wartościowego (Value Type).
TeWuX dnia 19-03-2006 13:07
zwięźle i na temat 



