Tipos primitivos
Tipos Primitivos
Os tipos primitivos são os tipos básicos que constituem uma determinada linguagem de programação, ou seja, são os tipos "nativos" de um certa linguagem de programação que é suportada diretamente pelo compilador, sem passar por um mapeamento ou derivação.
Esses tipos primitivos estão na existência do C# desde sua criação e nunca iram mudar. No nosso caso, teremos 15 tipos primitivos,
Palavra Chave |
Tipo | Faixa de valores |
bool | System.Boolean | true ou false |
byte | System.Byte | -127 a 128 |
char | System.Char | U+0000 a U+ffff |
decimal | System.Decimal | 1,0 × 10-28 a 7,9 × 1028 |
double | System.Double | ±5,0 × 10-324 a ±1,7 × 10308 |
float | System.Single | ±1,5 × 10-45 a ±3,4 × 1038 |
int | System.Int32 | -2.147.483.648 a 2.147.483.647 |
long | System.Int64 | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 |
Object | System.Object | |
Sbyte | System.Sbyte | 0 a 255 |
Short | System.Int16 | -32,768 a 32,767 |
String | System.String | |
Uint | System.UInt32 | 0 a 4,294,967,295 |
Ulong | System.UInt64 | 0 a 18,446,744,073,709,551,615 |
Ushort | System.UInt16 | 0 a 65,535 |
Tudo é um objeto.
Mesmo tendo os tipos primitivos, todos os tipos são derivados do tipo object, ou seja, tudo é objeto, todos "nasceram" da System.Object. Isso evita muitos problemas de compatibilidade entre tipos, uma vez que sempre podemos definir um tipo object que aceita qualquer tipo de tipos, sendo primitivos ou de classes.
Daí em diante é só tentar fazer o Parse, ou seja, a conversão, ou mesmo o *Box *ou Unbox.
O *Box *e *Unbox *é um ponto que cai no exame 70-483. Ao menos, se você tiver conhecimento, conseguiu matar 1 questão das 40 totais.
Um exemplo básico de Box e Unbox
01./* Definição de um tipo primitivo básico do tipo inteiro */
02.int i = 32;
03.
04./* Aqui nessa linha fazemos o Box, uma vez que tudo é derivado de object. */
05.object obj = i;
06.
07./* Nessa linha fazemos o Unbox, ou seja, falamos que "obj" é do tipo inteiro.
08. * Essa prática requer um pouco de cuidado, uma vez que o "obj" não for
09. * do tipo inteiro, irá ocorrer uma exception, ou seja, um erro.
10. */
11.int j = (int)obj;
Uma das perguntas que no exame, é justamente a conversão sem a possibilidade de ocorrer uma exception. Outra questão que caiu por exemplo, foi a conversão dupla de unbox, não sei se seria bem esse termo.
1./* Definição de um tipo primitivo básico do tipo inteiro */
2.int i = 32;
3.object obj = i;
4.
5./* Nesse caso, fazemos um unbox primeiro para Int e logo em seguida para decimal. */
6.decimal j = (decimal)(int)obj;
Referências
http://msdn.microsoft.com/pt-br/library/ms228360(v=vs.90).aspx