Valor versus referência; literais; inferência com var; const/readonly
Aprenda como os tipos de valor diferem dos tipos de referência, como funcionam os literais e sufixos numéricos, quando usar var e qual é o papel de const e readonly.
Valor versus referência; literais; inferência com var; const/readonly é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 3 aulas no total.
Por que os tipos são importantes
Objetivo: entender os tipos de valor e de referência e como variáveis, literais e constantes se comportam no código cotidiano.
Valor versus referência
Tipo de valor: copia os dados na atribuição (por exemplo, int, bool, struct). Tipo de referência: copia uma referência (classe, matriz, cadeia de caracteres).
- Valor: alterações locais mais seguras
- Referência: identidade de objeto compartilhada
Literais e sufixos
Os literais têm tipos. Use sufixos para maior clareza: f (float), m (decimal), L (long).
- 3.14f → float
- 10m → decimal (dinheiro)
- 123L → long
Inferência de tipo com var
var permite que o compilador deduza o tipo a partir do lado direito. Use-o quando o tipo for evidente; caso contrário, declare-o explicitamente.
const versus readonly
const: constante conhecida em tempo de compilação; readonly: definida no construtor ou na declaração.
- Use const para valores fixos (por exemplo, Pi)
- Use readonly para valores conhecidos durante a execução
Tipos na prática
Veja o comportamento de valores e referências, os sufixos numéricos, a inferência simples de tipo com var e o uso de const/readonly em um único programa pequeno.
using System;
// Value type (struct) copies by value
public struct PointS
{
public int X;
public int Y;
}
// Reference type (class) copies the reference
public class PointC
{
public int X;
public int Y;
}
// Readonly demo class
public class Config
{
public readonly string Name;
public Config(string name)
{
Name = name; // can set here
}
}
public class Program
{
// Compile-time constant
private const double Pi = 3.14159;
public static void Main(string[] args)
{
// 1) Value vs reference
PointS a = new PointS { X = 1, Y = 2 };
PointS b = a; // copy value
b.X = 99;
Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
Console.WriteLine("Value struct b.X = " + b.X); // 99
PointC ac = new PointC { X = 1, Y = 2 };
PointC bc = ac; // copy reference
bc.X = 77;
Console.WriteLine("Ref class ac.X = " + ac.X); // 77 (same object)
Console.WriteLine("Ref class bc.X = " + bc.X); // 77
// 2) Literals & suffixes
float f = 3.14f;
decimal price = 10m;
long big = 123L;
Console.WriteLine("f=" + f + " price=" + price + " big=" + big);
// 3) var inference (type is obvious)
var sum = a.X + a.Y; // int
Console.WriteLine("sum=" + sum);
// 4) const vs readonly
Config cfg = new Config("Demo");
Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
}
}
Definição de tipo de valor
Recapitulação
Recapitulação: tipos de valor copiam dados; tipos de referência compartilham objetos. Use sufixos para literais numéricos, var quando a intenção estiver clara e escolha const ou readonly adequadamente.
Perguntas Frequentes
A aula “Valor versus referência; literais; inferência com var; const/readonly” é grátis?
Sim — o texto completo de “Valor versus referência; literais; inferência com var; const/readonly” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 3 aulas no total.
O que vou aprender em “Valor versus referência; literais; inferência com var; const/readonly”?
Aprenda como os tipos de valor diferem dos tipos de referência, como funcionam os literais e sufixos numéricos, quando usar var e qual é o papel de const e readonly. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.
Quanto tempo leva a aula “Valor versus referência; literais; inferência com var; const/readonly”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Valor versus referência; literais; inferência com var; const/readonly
- Operadores e expressões: aritméticos, de comparação e lógicos
- Sufixos na prática; conversão de tipo versus conversão; criação de objetos no C# 6