2012-03-23 17 views
9

Ya sana bir nesneyi alıp MSDN örnekte olduğu gibi ValueType bunu Unbox zaman kutudan çıkarma anlamak:Bir dizeyi kutusundan çıkarabilir miyim?

int i = 123; 
object o = i; 
o = 123; 
i = (int)o; // unboxing 

Yani sadece düşünüyordum bir dize kutulanmamış edilebilir? Sanırım, bir dizeyi temsil edebilecek valuetype hiçbiri olmadığı için yapamazsınız. Ben haklı mıyım

+0

Olası kopya: http://stackoverflow.com/questions/6423452/boxing-and-unboxing-in-int-and-string –

+2

@Baboon Bu soruyu benim yayınlamadan önce okudum. Sanırım sorum, bir dizenin kutudan çıkarılamayacağı gerçeğine göre daha sıkıydı. Diğeri benim bakış açımda daha geneldir =) Yine de temiz tuttuğunuz için teşekkürler ;-) –

cevap

16

Haklısınız. Bir dize kutudan çıkarılamaz, çünkü yalnızca değer türleri boks ve kutudan ayrılmaya tabidir; Bir dize bir referans türüdür.

+0

Teşekkürler! Birkaç gün önce kafam karıştı ve onu okumaya başladım, bu yüzden sadece bir kontrol sorusu oldu, bu yüzden aldım ;-) Teşekkürler! –

+0

Bu nedenle, ilk satırda bu örnekte belirtildiği gibi bir dize kutululamaz: http://johnbarshinger.wordpress.com/2008/07/02/c-boxing-and-unboxing-cast-as-convert-parse-tryparse/ –

+0

@ SimonEdström: Hayır. Bu örnek yanlış. – Ryan