Begriff |
Boxing |
Abkürzung |
|
Synonyme/Aliase |
|
Erläuterung des Begriffs
Boxing
Als Boxing wird im .NET Framework die Umwandlung eines Wert-Typs in einen Referenz-Typ bezeichnet (Gegenteil: Unboxing).
Alle Typen im .NET Framework sind Klassen. Jedoch gibt es zwei Arten von Typen: Wertetypen (Werttypen) und Referenztypen.
Wertetypen
- Werte liegen auf dem Stack
- existieren als Performanz-Gründen
- Instanziierung mit new-Operator optional
- Vergleichoperation vergleicht die Werte
- Kopieroperation kopiert den Wert
Referenztypen
- Werte liegen auf dem Heap
- Zeiger auf den Wert liegt auf dem Stack
- Instanziierung mit new-Operator notwendig
- Kopieroperation kopiert den Zeiger
- Vergleichoperation vergleicht die Zeiger
- Flache Wertkopie möglich durch Aufruf von MemberWiseClone()
- Tiefe Wertkopie möglich durch eigene Implementierung (IClonable)
Beispiel für Boxing und Unboxing
// Beispiel: Werttyp ohne Member
int i = 1234, i2;
object oi, oi2;
// Boxing
oi = i;
// Unboxing
i2 = (int) oi;
// oder:
i2 = Convert.ToInt32(oi);
Querverweise zu anderen Begriffen im Lexikon
Referenz-Typ Referenztyp Unboxing Wertetyp Werttyp
|