C# Boxing and Unboxing
Net Framework’te value type ve referance type olmak üzere iki tür veri tipi vardır.
Value Type : İnteger, Float ,Decimal , Struct, vb. Stack bölgesinde tutulurlar.
Referans Türler : Dynamic, Delegate, Interface, Strings, Object, Class. Hesap bölgesinde tutulurlar.
Boxing , Stack’te bulunan değer türlerinin heap bulunan referans tiplerine dönüştürmektir.
Boxing :
int x = 5;
object o = a;
Unboxing, boxing işleminin tersini yapar.Yani heap bulunanların stack bölgesine kopyalanması işlemidir.
Unboxing:
int x = 5;
object o = x;
int y = (int)o;
Zorunlu olmadıkça kullanmaktan kaçınılmalıdır.
Çünkü programın normal atamada kaybedeceği sürenin kat kat fazlasını kaybeder ve programın performansını önemli derecede düşürür.
ToString() metoduda boxing işlemini yapan bir metotdur.