sábado, 17 de outubro de 2009

Boxing e Unboxing em C#

O C#, como uma linguagem fortemente tipada, nos remete muitas vezes a precisarmos fazer conversões entre tipos de dados diferentes, o que chamamos de CAST. Chamamos de Boxing quando convertemos um tipos de dados "Value Type" para um "Reference Type". No caso do Unboxing, é exatamente ao contrário, ou seja, convertemos um tipo de dados "Reference Type" para um "Value Type".

Exemplo de Boxing:
int i = 9966;
object o = (object)i;

Exemplo de Unboxing:
object o = 9966;
int i = (int)o;

A prática de Boxing e Unboxing vem acompanhada de uma sobrecarga muito grande, portanto, deve ser evitada sempre que possível utilizando sempre os tipos específicos dos dados que deseja armazenar, sempre que tiver uma variação do tipo de dado a ser armazenado, uma boa prática é utilizar generics evitando qualquer tipo de conversão.

Até a próxima

Nenhum comentário:

Postar um comentário