Descobrir tipos de valor e de referência
- 8 minutos
Com muitos tipos de dados disponíveis em C#, escolher o certo a ser usado significa que você precisa entender quando pode escolher um tipo de dados em vez de outro.
Antes de discutir por que você pode escolher um tipo de dados em vez de outro, você precisa entender mais sobre tipos de dados. Você também precisa saber como os dados e os tipos de dados funcionam em C# e .NET.
O que são dados?
Responder à pergunta "o que são dados" depende de quem você pergunta e em que contexto você está perguntando.
No desenvolvimento de software, os dados são essencialmente um valor armazenado na memória do computador como uma série de bits. Um bit é um comutador binário simples representado como um 0 ou 1, ou melhor, "desativado" e "ativado". Um único bit não parece útil, no entanto, quando você combina 8 bits em uma sequência, eles formam um byte. Quando usado em um byte, cada bit assume um significado na sequência. Na verdade, você pode representar 256 combinações diferentes com apenas 8 bits se usar um sistema numeral binário (base-2).
Por exemplo, em um sistema numeral binário, você pode representar o número 195 como 11000011. A tabela a seguir ajuda você a visualizar como isso funciona. A primeira linha tem oito colunas que correspondem a uma posição em um byte. Cada posição representa um valor numérico diferente. A segunda linha pode armazenar o valor de um bit individual ou 01.
| 128 | 64 | 32 | 16 | oito | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Se você adicionar o número de cada coluna na primeira linha que corresponde a uma 1 na segunda linha, obterá o equivalente decimal à representação do sistema numeral binário. Nesse caso, seria 128 + 64 + 2 + 1 = 195.
Para trabalhar com valores maiores além 255, seu computador armazena mais bytes (geralmente de 32 ou 64 bits). Se você estiver trabalhando com milhões de números grandes em uma configuração científica, talvez seja necessário considerar com mais cuidado quais tipos de dados você está usando. Seu código pode exigir mais memória para ser executado.
E os dados textuais?
Se um computador só entende 0s e 1s, então como ele permite que você trabalhe com texto? Usando um sistema como o ASCII (American Standard Code for Information Interchange), você pode usar um único byte para representar letras maiúsculas e minúsculas, números, guia, backspace, nova linha e muitos símbolos matemáticos.
Por exemplo, se você quisesse armazenar uma letra a minúscula como um valor em meu aplicativo, o computador entenderia apenas a forma binária desse valor. Para entender melhor como uma letra a minúscula é tratada pelo computador, preciso localizar uma tabela ASCII que forneça valores ASCII e seus equivalentes decimais. Você pode pesquisar os termos "ASCII lookup decimal" para localizar esse recurso online.
Nesse caso, a letra a minúscula é equivalente ao valor 97decimal. Em seguida, você usaria o mesmo sistema numeral binário ao contrário para descobrir como uma letra a ASCII é armazenada pelo computador.
| 128 | 64 | 32 | 16 | oito | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Desde 64 + 32 + 1 = 97então, o código ASCII binário de 8 bits é 01100001a .
É provável que você nunca precise executar esses tipos de conversões por conta própria, mas entender a perspectiva de dados do computador é um conceito fundamental, especialmente porque você está considerando tipos de dados.
O que é um tipo de dados?
Um tipo de dados é uma maneira de uma linguagem de programação definir a quantidade de memória a ser salva para um valor. Há muitos tipos de dados na linguagem C# a serem usados para muitos aplicativos e tamanhos de dados diferentes.
Para a maioria dos aplicativos que você cria em sua carreira, você se estabelecerá em um pequeno subconjunto de todos os tipos de dados disponíveis. No entanto, ainda é vital saber que outros existem e por quê.
Tipos de valor versus referência
Este módulo se concentra nos dois tipos de tipos em C#: tipos de referência e tipos de valor.
Variáveis de tipos de referência armazenam referências a seus dados (objetos), ou seja, apontam para valores de dados armazenados em outro lugar. Em comparação, variáveis de tipos de valor contêm diretamente seus dados. À medida que você aprende mais sobre C#, novos detalhes surgem relacionados à diferença fundamental entre tipos de valor e referência.
Tipos de valor simples
Tipos de valor simples são um conjunto de tipos predefinidos fornecidos por C# como palavras-chave. Essas palavras-chave são aliases (um apelido) para tipos predefinidos definidos na Biblioteca de Classes do .NET. Por exemplo, a palavra-chave int C# é um alias de um tipo de valor definido na Biblioteca de Classes do .NET como System.Int32.
Os tipos de valor simples incluem muitos dos tipos de dados que você já pode ter usado e charbool. Há também muitos tipos de valor integral e de ponto flutuante para representar uma ampla gama de números inteiros e fracionários.
Recapitulação
- Os valores são armazenados como bits, que são opções simples de ativação/desativação. Combinar o suficiente dessas opções permite que você armazene praticamente qualquer valor possível.
- Há duas categorias básicas de tipos de dados: tipos de valor e referência. A diferença está em como e onde os valores são armazenados pelo computador conforme o programa é executado.
- Tipos de valor simples usam um alias de palavra-chave para representar nomes formais de tipos na Biblioteca .NET.