2012-03-23 12 views
9

Lo que entiendo unboxing es cuando tomo un objeto y unbox a valuetype como el ejemplo de MSDN:¿Puedo desvincular una cadena?

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

Así que sólo estaba pensando, puedo ser una cadena sacó de la caja? Creo que no, no puede porque no hay valuetype que pueda representar una cadena. ¿Estoy en lo cierto?

+0

Posible duplicado: http://stackoverflow.com/questions/6423452/boxing-and-unboxing-in-int-and-string –

+2

@Baboon Leí esa pregunta antes de publicar la mía. Creo que mi pregunta fue más cerrada en cuanto al hecho de que una cadena no puede ser desempaquetada. El otro es más general en mi punto de vista =) Gracias por mantener SO limpio de todos modos ;-) –

Respuesta

16

Tienes razón. No se puede desempaquetar una cadena porque solo los tipos de valores están sujetos a boxeo y unboxing; una cadena es un tipo de referencia.

+0

¡Gracias! Estaba confundido hace algunos días y comencé a leer sobre él, así que era solo una pregunta de control, así que lo entendí ;-) ¡Gracias! –

+0

Por lo tanto, una cadena no se puede encasillar como dice este ejemplo en la primera línea: http://johnbarshinger.wordpress.com/2008/07/02/c-boxing-and-unboxing-cast-as-convert-parse-tryparse/ –

+0

@ SimonEdström: No. Ese ejemplo es incorrecto – Ryan

Cuestiones relacionadas