Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Guia Completo dos Tipos de Dados em C#: Valor, Referência e Ponteiro

As variáveis em C# são categorizadas em três tipos:

Tipo por Valor (Value Type)

Variáveis de tipo valor armazenam o dado diretamente. Derivam de System.ValueType.

Exemplos: int, char, float (números, caracteres, ponto flutuante). Ao declarar int, o sistema aloca memória para o valor.

Tabela de Tipos por Valor (C# 2010)

TipoRepresentaIntervaloValor Padrão
boolValor booleanoTrue ou FalseFalse
byteInteiro sem sinal 8 bits0 a 2550
charCaractere Unicode 16 bitsU+0000 a U+FFFF'\0'
decimalValores decimais precisos 128 bits (28-29 dígitos significativos)(-7.9×10²⁸ a 7.9×10²⁸)/10⁰ a 280.0M
doublePonto flutuante dupla precisão 64 bits(±)5.0×10⁻³²⁴ a (±)1.7×10³⁰⁸0.0D
floatPonto flutuante precisão simples 32 bits-3.4×10³⁸ a +3.4×10³⁸0.0F
intInteiro com sinal 32 bits-2.147.483.648 a 2.147.483.6470
longInteiro com sinal 64 bits-9.223.372.036.854.775.808 a 9.223.372.036.854.775.8070L
sbyteInteiro com sinal 8 bits-128 a 1270
shortInteiro com sinal 16 bits-32.768 a 32.7670
uintInteiro sem sinal 32 bits0 a 4.294.967.2950
ulongInteiro sem sinal 64 bits0 a 18.446.744.073.709.551.6150
ushortInteiro sem sinal 16 bits0 a 65.5350

Para obter tamanho exato de um tipo em bytes na plataforma atual, use sizeof(tipo).

Exemplo: Tamanho do int

using System;
namespace DataTypeApplication {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Size of int: {0}", sizeof(int));
            Console.ReadLine();
        }
    }
}

Resultado: Size of int: 4

Tipo por Referência (Reference Type)

Não contêm o dado real, mas uma referência (endereço de memória) para o dado. Múltiplas variáveis podem referenciar o mesmo local; alteração por uma reflete nas outras.

Exemplos built-in: object, dynamic, string.

Tipo Object

Classe base final para todos os tipos no CTS (Common Type System). Alias para System.Object. Pode receber valores de qualquer tipo (value, reference, predefined, user-defined), mas requer conversão (casting).

object obj;
obj = 100;  // boxing

Tipo Dynamic

Armazena qualquer tipo de valor. Verificação de tipo ocorre em tempo de execução.

dynamic  = value;

Exemplo: dynamic d = 20;. Similar a object, mas object verifica tipo em tempo de compilação.

Tipo String

Permite atribuir valores de string. Alias para System.String, derivado de object. Duas formas de literais: aspas duplas "..." e verbatim @"...".

String str = "Tutorials Point";
@"Tutorials Point";

Tipos de referência definidos pelo usuário: class, interface, delegate (discutidos em capítulos posteriores).

Tipo Ponteiro (Pointer Type)

Armazenam endereço de memória de outro tipo. Ponteiros em C# têm mesmas capacidades de C/C++.

type* identifier;

Exemplos: char* cptr; int* iptr;.

Discutidos no capítulo Unsafe Codes.

Linguagem C

  1. Quatro Principais Tipos de Drive Fendido para Fixadores Explicados
  2. Termopares Explicados: Tipos, Faixas e Comparação de Desempenho
  3. Domine Variáveis e Tipos de Dados Primitivos em C#: Guia Completo
  4. Dominando Conversão de Tipos em C#: Implícita, Explícita, Parse e Métodos Convert
  5. Entendendo Tipos de Dados em C++: Fundamentos, Modificadores e Boas Práticas
  6. Tipos de Dados em C Explicados: int, float, char e Mais – Guia Completo
  7. Dominando Tipos de Dados em Python: Guia Prático
  8. Dominando Conversão e Casting de Tipos em Python: Guia Completo
  9. Tipos de Dados Primitivos do Java: Guia Completo com Exemplos
  10. Dominando Type Casting em Java: De Widening a Narrowing e Além