Série C# – Fundamentos

18 10 2008

Conversion, Boxing e Unboxing

No C# podemos fazer conversões implícitas se o tipo de destino puder “acomodar” todo o valor do tipo de origem. Isso é chamado de “widening conversion”.

Exemplo:

int i = 1;
double d = 1.0009;
d = i;  //Conversão permitida

Se o range ou precisão do tipo de origem exceder o do tipo de destino a operação é chamada de “narrowing conversion”, que normalmente requer uma conversão explicita.

“Narrowing conversions” falha se o valor de origem exceder o range do tipo de destino ou se a conversão entre os tipos não for definida, entao você deve colocar “Narrowing conversions” dentro de blocos Try ou usar o TryParse e checar o valor de retorno

Boxing e Unboxing

Boxing converte um value type para um reference type e unboxing converte um reference type para um value type. O exemplo abaixo mostra com fazer um boxing convertendo um Integer(value type) para um Object(reference type):

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

Unboxing ocorre quando você converte um objeto reference para um value type.

Exemplo:

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

Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: