Compartilhar via


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