C# Glossário
Os termos que aparecem no guia, em ordem alfabética, explicados em uma ou duas frases, cada um com o link para a aula em que é explicado com calma. Termos em inglês aparecem com a tradução. Quando o nome em inglês é o mais usado no dia a dia (como array ou async), ele é a entrada principal.
Dica
Use Ctrl+F no navegador para achar um termo, ou o índice de letras abaixo. Para consultas rápidas, veja também as referências de palavras-chave, de tipos e limites, de operadores, de string e de erros do compilador.
A · B · C · D · E · F · G · H · I · J · L · M · N · O · P · Q · R · S · T · U · V · W · Y
A
- abstract (classe abstrata)
- Uma classe que serve só de base e não pode ser criada com
new. Pode ter métodosabstract, sem corpo, que toda classe filha é obrigada a implementar comoverride. Veja: Classes Abstratas. - Acessador (
get,set,init) - As partes de uma propriedade: o
getroda quando alguém lê o valor; oset, quando alguém atribui; oinit, só na criação do objeto. Cada um pode ter o seu modificador de acesso, como em{ get; private set; }. Veja: Propriedades e readonly e init. - args
- O array de
stringcom o que foi escrito depois do nome do programa na linha de comando: emdotnet run conta.cs -- 10 20,argsé["10", "20"]. Veja: Argumentos da Linha de Comando. - Argumento
- O valor que você entrega a um método quando o chama: em
Somar(2, 3), os argumentos são2e3. Do lado de dentro, eles chegam nos parâmetros. Veja: Parâmetros e Parâmetros Opcionais e Nomeados. - Array (vetor)
- Uma fileira de valores do mesmo tipo, com tamanho fixo:
int[] notas = [7, 8, 6];. O primeiro elemento é o de índice 0, e o C# confere todo acesso: passar do fim lançaIndexOutOfRangeException. Veja: Arrays, Arrays Multidimensionais e A Classe Array. - async e await
- Palavras para esperar uma operação demorada (ler um arquivo, baixar algo) sem travar o programa. Um método
asyncdevolve umaTask, e oawaitpausa o método até a tarefa terminar, deixando a thread livre. Veja: async e await. - Atribuição
- Guardar um valor numa variável que já existe, com
=:idade = 31;. Não confunda com a comparação==. Os atalhos+=,-=,*=fazem a conta e guardam. Veja: Variáveis e Operadores de Atribuição. - Atributo
- Uma etiqueta entre colchetes que dá uma informação a mais ao compilador ou ao programa:
[Obsolete],[Flags],[JsonPropertyName("nome")]. Veja: Atributos. - Aviso (warning)
- Mensagem do compilador sobre algo suspeito que não impede o programa de rodar, como
CS8602(possívelnull) ouCS0168(variável não usada). Quase sempre aponta um defeito real. ComTreatWarningsAsErrors, todo aviso vira erro. Veja: Avisos do Compilador e Boas Práticas.
B
- base
- Dentro de uma classe filha, a palavra que se refere à classe-mãe:
: base(titular)chama o construtor dela, ebase.Metodo()chama a versão dela de um método. Veja: base. - Biblioteca de classes
- Um projeto que não roda sozinho: ele gera um
.dllcom classes para outros programas usarem. Criada comdotnet new classlibe ligada comProjectReference. Veja: Bibliotecas de Classes. - Bloco
- Um trecho de código entre chaves
{ }, como o corpo de umif, de um laço ou de um método. Uma variável criada dentro de um bloco só existe nele. Veja: Sintaxe e Escopo. - bool
- O tipo que guarda só
true(verdadeiro) oufalse(falso). Toda comparação dá umbool, e toda condição deifewhiletem de ser um. Veja: char e bool. - Boxing
- Quando um tipo de valor (um
int, por exemplo) é guardado numa variávelobject: o .NET o embrulha numa "caixa" no heap. Tirar da caixa é o unboxing, e um tipo errado lançaInvalidCastException. Veja: Valor × Referência. - break e continue
- Dentro de um laço,
breaksai do laço na hora;continuepula o resto da volta atual e começa a próxima. Obreaktambém termina cadacasede umswitch. Veja: break e continue. - Build (compilação)
- Transformar o código-fonte no programa: o
dotnet buildchama o compilador e gera os arquivos embin/. Odotnet runfaz o build antes de rodar, se o código mudou. Veja: Projetos e O Comando dotnet.
C
- C# (lê-se "cê sharp")
- A linguagem deste guia, criada pela Microsoft em 2000 e hoje de código aberto. É compilada, orientada a objetos e com tipos conferidos pelo compilador. A versão atual é a 14, com o .NET 10. Veja: O que é C# e Versões.
- Caminho (path)
- O endereço de um arquivo ou pasta: absoluto (
/home/ana/cs/notas.txt) ou relativo à pasta atual (notas.txt). Monte caminhos comPath.Combine. Veja: Pastas e Caminhos. - Campo (field)
- Uma variável que pertence a um objeto (ou à classe, se for
static). Por convenção, campos sãoprivatee têm nome_camelCase; o acesso de fora é feito por propriedades. Veja: Campos. - Cancelamento
- O jeito combinado de pedir para uma tarefa parar: um
CancellationTokenSourcedá o sinal, e a tarefa confere oCancellationToken. Veja: Cancelamento. - Cast (conversão explícita)
- Forçar a conversão de um tipo em outro escrevendo o tipo entre parênteses:
(int)7.9dá 7 (corta a parte decimal). Pode perder dados, por isso o compilador exige que você peça. Veja: Conversão de Tipos. - catch
- O bloco que trata uma exceção lançada dentro do
try:catch (FormatException). Pegue só as exceções que você sabe tratar, e nunca deixe umcatchvazio. Veja: try e catch. - char
- O tipo de um caractere só, entre aspas simples:
'A'. Cadachartem um código numérico ('A'é 65). Veja: char e bool. - Classe
- O molde de um tipo de objeto: diz que dados ele guarda (campos e propriedades) e o que ele faz (métodos).
class Conta { … }. É um tipo de referência. Veja: O que é POO e Classes e Objetos. - CLR (Common Language Runtime)
- A parte do .NET que roda os programas: carrega a IL, compila com o JIT, cuida da memória com o coletor de lixo e das exceções. Veja: .NET: SDK, Runtime e CLR.
- Código de saída
- O número que o programa devolve ao terminar: 0 é sucesso; outro número, problema. Uma exceção não tratada termina com 134 no Linux. No terminal,
echo $?mostra o código. Veja: Rodar com dotnet run e Exceções. - Coleção
- Um objeto que guarda vários valores e cresce ou diminui conforme o uso:
List,Dictionary,HashSet,Queue,Stack. Veja: Coleções. - Coletor de lixo (garbage collector, GC)
- A parte do .NET que libera a memória dos objetos que nenhuma variável alcança mais, numa hora que ele escolhe. Divide os objetos em gerações (0, 1 e 2). Veja: Memória e Coletor de Lixo.
- Comentário
- Texto para pessoas, que o compilador ignora:
// até o fim da linhaou/* em bloco */. O///faz comentários de documentação. Veja: Comentários. - Compilador
- O programa que lê o seu código C# e o transforma em IL. O compilador do C# se chama Roslyn; ele é quem mostra os erros e avisos
CS…. Veja: .NET e Lendo Erros do Compilador. - Condição de corrida (race condition)
- Quando duas threads mexem na mesma variável ao mesmo tempo e o resultado depende de quem chega primeiro, como num
contador++em paralelo. Resolve-se comlockouInterlocked. Veja: Sincronização (lock) e Threads. - const (constante)
- Um valor com nome que nunca muda e é conhecido na compilação:
const decimal Desconto = 0.10m;. Acaba com os "números mágicos" soltos no código. Veja: Constantes. - Construtor
- O método especial que roda no
newe prepara o objeto: tem o nome da classe e nenhum tipo de retorno. Pode exigir dados (new Conta("Ana")) e conferi-los. Veja: Construtores. - Construtor primário C# 12
- Os parâmetros escritos logo depois do nome da classe,
class Tela(string nome) { … }, que ficam disponíveis no corpo inteiro. Os records já tinham algo parecido. Veja: Construtores e base. - .csproj
- O arquivo XML que descreve um projeto: o tipo de programa (
OutputType), a versão do .NET (TargetFramework), os pacotes e as opções, comoNullable. Veja: O Arquivo .csproj. - Cultura
- As regras de um país para números, datas e moeda. Na máquina da Ana (pt-BR),
3.5aparece como3,5e o formatoCusaR$.CultureInfo.InvariantCultureusa sempre o ponto. Veja: Cultura.
D
- DateTime, DateOnly e TimeSpan
- Os tipos de data e hora:
DateTimeguarda data e hora,DateOnlysó a data, eTimeSpanuma duração (a diferença entre duas datas). Veja: Datas e Horas. - decimal
- O tipo de número com vírgula que guarda em base 10, sem os erros de arredondamento do
double:0.1m + 0.2mdá exatamente0,3. É o tipo para dinheiro; o sufixo ém. Veja: float, double e decimal. - Delegate
- Um tipo que guarda uma referência a um método, para chamá-lo depois ou passá-lo para outro método.
Func,ActionePredicatesão delegates prontos. Veja: Delegates e Func, Action e Predicate. - Depurador (debugger)
- A ferramenta que roda o programa passo a passo, para em pontos de parada e mostra o valor das variáveis. O VS Code e o Rider têm um. Veja: Depuração.
- Desconstrução
- Tirar os pedaços de uma tupla ou de um record para variáveis separadas, numa linha:
var (nome, idade) = pessoa;. Veja: Tuplas e Records. - Dictionary (dicionário)
- Uma coleção de pares chave e valor, como uma agenda (nome → telefone):
Dictionary<string, int>. Ler uma chave que não existe com[ ]lançaKeyNotFoundException; useTryGetValue. Veja: Dictionary. - Diretiva (
#:package,#:property) .NET 10 - Linhas especiais no topo de um arquivo solto que fazem o papel do
.csproj:#:packageacrescenta um pacote NuGet e#:propertymuda uma opção, comoTreatWarningsAsErrors=true. Veja: Rodar com dotnet run e O Arquivo .csproj. - Dispose e IDisposable
IDisposableé a interface das classes que seguram algo que precisa ser fechado (um arquivo, uma conexão);Dispose()é o método que fecha. Ousingchama oDisposepor você. Veja: using e IDisposable.- do while
- O laço que roda o corpo antes de testar a condição, por isso roda pelo menos uma vez. Bom para "pergunte até a resposta valer". Veja: do while.
- dotnet (o comando)
- A ferramenta de linha de comando do .NET:
dotnet run,dotnet new,dotnet build,dotnet test,dotnet format,dotnet package add… Veja: O Comando dotnet. - dotnet run arquivo.cs (file-based app) .NET 10
- Rodar um arquivo
.cssolto, sem criar projeto. É como a Ana roda os programas dos níveis 1 e 2. Veja: Rodar com dotnet run. - double
- O tipo padrão de número com vírgula: rápido e com uns 15 dígitos de precisão, mas guarda em base 2, então
0.1 + 0.2dá0,30000000000000004. Bom para medidas, ruim para dinheiro. Veja: float, double e decimal.
E
- Encapsulamento
- Esconder os dados de um objeto e só deixar mexer neles por métodos e propriedades que conferem as regras, como o saldo com
private setque só muda porDepositareSacar. Veja: Encapsulamento e Conta Bancária. - enum (enumeração)
- Um tipo com uma lista fixa de opções com nome:
enum DiaDaSemana { Segunda, Terca, … }. Cada opção tem um número por baixo. Veja: Enums. - Erro de compilação
- Um problema que impede o programa de ser criado, mostrado como
arquivo(linha,coluna): error CS0029: …. O códigoCS…é o mesmo em qualquer língua. Veja: Lendo Erros do Compilador e Erros do Compilador (CS…). - Escape (sequência de escape)
- Uma barra invertida seguida de um caractere, dentro de um texto, que vale por algo difícil de digitar:
\n(nova linha),\t(tabulação),\"(aspas). Veja: Escapes e Strings Literais. - Escopo
- A região do código em que uma variável existe: o bloco
{ }em que ela nasceu. Fora dele, o nome dáCS0103. Veja: Escopo. - Evento (
event) - Um aviso que um objeto dá para quem se inscreveu: inscreve-se com
+=, sai com-=e o dono dispara com?.Invoke(). Esquecer o-=pode manter objetos vivos na memória. Veja: Eventos e Memória. - Exceção
- Um erro durante a execução (não na compilação), como dividir um inteiro por zero ou ler fora de um array. Se ninguém a tratar, o programa cai com
Unhandled exceptione o código 134. Veja: Exceções, Exceções Próprias e Referência de Exceções. - Execução adiada (deferred execution)
- A consulta LINQ não roda quando é escrita, só quando alguém percorre o resultado (
foreach,Count(),ToList()). Se a lista mudar antes, o resultado muda. Veja: O que é LINQ e yield return. - Expressão de coleção C# 12
- Os colchetes que criam um array ou uma lista:
int[] notas = [7, 8, 6];,List<string> vazia = [];. Veja: Arrays e Coleções. - Expressão switch C# 8
- A forma do
switchque devolve um valor:nota switch { >= 6 => "Aprovado", _ => "Reprovado" }. O_é o "qualquer outro". Veja: Expressões switch. - Extensão (método de extensão)
- Um método
staticcomthisno primeiro parâmetro, que pode ser chamado como se fosse do próprio tipo:preco.ComDesconto(). Todo o LINQ é feito assim. O C# 14 trouxe os blocosextension. Veja: Métodos de Extensão.
F
- field C# 14
- Dentro do
getou dosetde uma propriedade, a palavra que dá acesso ao campo de apoio que o compilador cria, sem você declarar um campo à parte. Veja: Propriedades. - File
- A classe com os métodos prontos para arquivos:
File.ReadAllText,WriteAllText,ReadAllLines,AppendAllText,Exists. Veja: Arquivos (File). - Finalizador
- Um método
~NomeDaClasse()que roda quando o coletor de lixo leva o objeto, sem hora marcada. Quase nunca é preciso escrever um; para fechar recursos, useusing. Veja: Memória e Coletor de Lixo. - finally
- O bloco depois do
try(e doscatch) que roda sempre, com ou sem exceção. Bom para limpar e fechar. Veja: finally. - for
- O laço com contador:
for (int i = 0; i < 5; i++), com início, condição e passo. Veja: for e Laços Aninhados. - foreach
- O laço "para cada item da coleção":
foreach (string nome in nomes). Não precisa de índice e nunca passa do fim; mudar a lista dentro dele lançaInvalidOperationException. Veja: foreach e IEnumerable e foreach. - Formato (
C,N2,P…) - Letras que dizem como mostrar um número:
{preco:C}(moeda,R$ 12,50),{x:N2}(duas casas e milhar),{taxa:P}(porcentagem). Veja: Formatar Números. - Func, Action e Predicate
- Delegates prontos:
Func<int, int>recebe e devolve valores,Action<string>só recebe (não devolve nada),Predicate<T>respondetrueoufalse. Veja: Func, Action e Predicate. - Função local
- Um método escrito dentro de outro método. Os métodos no fim de um arquivo com instruções de nível superior são funções locais do programa principal. Sem
static, elas enxergam as variáveis de fora. Veja: Funções Locais.
G
- Generics (genéricos)
- Classes e métodos com um "tipo em branco", preenchido na hora de usar:
List<T>viraList<int>ouList<Aluno>. Dão reaproveitamento sem perder a conferência de tipos. Veja: Generics e Restrições (where). - Gerações (do coletor de lixo)
- As faixas em que o coletor separa os objetos: 0 (recém-criados, varrida muitas vezes), 1 e 2 (os que sobreviveram, varrida raramente). Veja: Memória e Coletor de Lixo.
- GroupBy
- O método LINQ que separa uma sequência em grupos por uma chave, como produtos por categoria. Cada grupo tem a
Keye os seus elementos. Veja: Agrupar (GroupBy).
H
- HashSet
- Um conjunto: uma coleção que não aceita repetidos (o
Addde um item que já existe devolvefalse) e respondeContainsmuito rápido. Não garante ordem. Veja: HashSet. - Heap
- A área da memória onde ficam os objetos criados com
new. Quem libera o heap é o coletor de lixo. Veja: Memória e Coletor de Lixo. - Herança
- Uma classe filha recebe tudo de uma classe-mãe e acrescenta o que é dela:
class ContaPoupanca : Conta. Em C#, cada classe tem uma mãe só (e todas descendem deobject). Veja: Herança.
I
- Identificador
- O nome que você dá a uma variável, método ou classe. Pode ter letras, dígitos e
_, não pode começar com dígito nem ser uma palavra reservada. Veja: Nomes e Convenções. - IEnumerable
- A interface de tudo o que pode ser percorrido com
foreach: arrays, listas, resultados do LINQ. Um método que recebeIEnumerable<T>aceita qualquer coleção. Veja: IEnumerable e foreach. - if e else
- A decisão: o bloco do
ifroda só se a condição for verdadeira; o doelse, caso contrário.else ifencadeia várias condições. Veja: if e else e else if. - IL (Intermediate Language, linguagem intermediária)
- O código que o compilador do C# gera, guardado no
.dll. Não é código de máquina: o JIT o transforma em código do processador na hora de rodar. Veja: .NET. - Imutável
- Que não muda depois de criado. A
stringé imutável (ToUpperdevolve um texto novo), e os records posicionais também (usewithpara uma cópia alterada). Veja: Strings e Records. - Indexador
- O que permite usar colchetes num objeto seu, como numa lista:
turma[0]. É declarado comthis[int indice]. Veja: Indexadores. - Índice
- A posição de um elemento num array, lista ou string, começando em 0.
^1é o último. Veja: Arrays e Índices e Intervalos. - Inferência de tipo
- Quando o compilador descobre o tipo sozinho, pelo valor:
var total = 0m;édecimal. O tipo continua fixo. Veja: Inferência com var. - Inicializador de objeto
- As chaves depois do
newque preenchem as propriedades:new Produto { Nome = "Caneta", Preco = 2.5m }. Comrequired, a propriedade tem de aparecer ali. Veja: Inicializadores e required. - Instruções de nível superior (top-level statements) C# 9
- Escrever o programa direto no arquivo, sem
class Programestatic void Main. O compilador cria oMainpor você. Veja: Program.cs e o Main. - int
- O tipo padrão de número inteiro, de cerca de −2,1 bilhões a +2,1 bilhões (4 bytes). Passar do limite "dá a volta" (estouro), a menos que use
checked. Veja: Inteiros e Tipos e Limites. - Interface
- Um contrato: uma lista de métodos e propriedades que uma classe promete ter. O nome começa com
I, comoIComparable. Uma classe pode implementar várias. Veja: Interfaces. - Interpolação
- Um texto com
$na frente em que cada{…}é trocado pelo valor:$"Olá, {nome}!". Aceita formato e largura:{preco,10:C}. Veja: Interpolação.
J
- JIT (just-in-time, "na hora certa")
- O compilador do CLR que transforma a IL em código do processador enquanto o programa roda, método por método. Veja: .NET.
- JSON
- Um formato de texto para guardar e trocar dados:
{ "Nome": "Ana", "Idade": 31 }. No C#,JsonSerializer.Serializetransforma objetos em JSON eDeserializefaz o caminho de volta. Veja: JSON e Agenda de Contatos.
L
- Laço (loop, repetição)
- Um bloco que repete:
while,do while,foreforeach. Um laço cuja condição nunca fica falsa é um laço infinito. Veja: while, for e foreach. - Lambda
- Um método sem nome, escrito numa linha:
p => p.Preco > 10("dadop, devolve se o preço passa de 10"). É o que se passa para o LINQ e para os delegates. Veja: Lambdas. - LINQ (Language Integrated Query)
- Os métodos de consulta das coleções:
Where(filtrar),Select(transformar),OrderBy(ordenar),GroupBy,Count,Sum… Veja: O que é LINQ e Referência de LINQ. - List (
List<T>) - A coleção mais usada: uma lista que cresce com
Add, diminui comRemovee é acessada pela posição, como um array sem tamanho fixo. Veja: List<T>. - lock
- Um bloco que só uma thread por vez pode executar, para proteger uma variável compartilhada. Veja: Sincronização (lock).
- LTS (Long Term Support)
- Uma versão do .NET com suporte por três anos, como o .NET 10 (novembro de 2025). As versões STS têm suporte menor. Veja: Versões do C# e do .NET.
M
- Main
- O método por onde o programa começa (o ponto de entrada):
static void Main(string[] args). Com instruções de nível superior, o compilador o cria sozinho. Veja: Program.cs e o Main. - Math
- A classe com as funções matemáticas:
Math.Max,Math.Pow,Math.Sqrt,Math.Round(que arredonda o ,5 para o par). Veja: Matemática (Math). - Método
- Um bloco de código com nome, que recebe parâmetros e pode devolver um valor:
decimal CalcularTotal(int quantidade). Veja: Métodos, Valor de Retorno e Sobrecarga. - Modificador de acesso
- A palavra que diz quem enxerga um membro ou tipo:
public(todos),private(só a própria classe),internal(o mesmo projeto),protected(a classe e as filhas). Veja: public, private e internal.
N
- Namespace
- Um "sobrenome" que agrupa tipos e evita conflitos de nome: a classe
JsonSerializermora emSystem.Text.Json. Ousingno topo do arquivo dispensa escrever o nome completo. Veja: Namespaces e using. - .NET
- A plataforma em que o C# roda: o compilador, o runtime (CLR), a biblioteca de classes e as ferramentas. É gratuita, de código aberto e roda em Linux, Windows e macOS. Veja: .NET: SDK, Runtime e CLR.
- new
- Cria um objeto (ou um array) e chama o construtor:
new Conta("Ana"). Quando o tipo já está escrito à esquerda, bastanew(). Veja: Classes e Objetos. - NuGet
- O repositório de pacotes do .NET (nuget.org).
dotnet package add NomeDoPacoteacrescenta uma biblioteca ao projeto. Veja: Pacotes NuGet. - null
- "Nenhum objeto": o valor de uma referência que não aponta para nada. Usar um membro de algo
nulllançaNullReferenceException. Tipos de valor só aceitamnullcom?(int?). Veja: null e Tipos Anuláveis e Operadores ??, ?. e ??=.
O
- object
- A classe-mãe de todos os tipos do C#. Todo objeto herda dela
ToString,Equals,GetHashCodeeGetType. Veja: A Classe object. - Objeto (instância)
- Uma "ficha preenchida" criada a partir de uma classe com
new, com os seus próprios valores. A classeContaé o molde; a conta da Ana é um objeto. Veja: Classes e Objetos. - Operador
- Um símbolo que faz uma operação:
+,%,==,&&,??. A precedência decide quem é feito primeiro. Veja: Referência de Operadores e Precedência. - Operadores lógicos
&&(e),||(ou) e!(não), que juntam condiçõesbool. O&&e o||param assim que sabem a resposta (curto-circuito). Veja: Operadores Lógicos.- out
- Um parâmetro pelo qual o método devolve um valor além do retorno, como em
int.TryParse(texto, out int numero). Veja: ref, out e in. - override
- Na classe filha, substitui um membro
virtualouabstractda mãe. Semvirtualna mãe, dá o erroCS0506. Veja: virtual e override.
P
- Parâmetro
- A variável de um método que recebe um argumento: em
void Saudar(string nome),nomeé o parâmetro. Pode ter valor padrão (opcional) e ser passado pelo nome. Veja: Parâmetros, Parâmetros Opcionais e params. - Parse e TryParse
- Converter texto em número:
int.Parse("42")lançaFormatExceptionse o texto não for número;int.TryParsedevolvefalsee é o certo para o que o usuário digita. Veja: Parse e TryParse. - partial
- Divide uma classe em vários arquivos, que o compilador junta. Muito usado com código gerado por ferramentas. Veja: Classes Parciais.
- Pattern matching (casamento de padrões)
- Testar a forma de um valor:
if (x is int n),nota is >= 0 and <= 10,pessoa is { Idade: > 18 }. Veja: Pattern Matching. - Pilha (stack)
- Duas coisas no guia: a área da memória onde ficam as variáveis locais de cada método que está rodando (encher a pilha dá
Stack overflow.); e a coleçãoStack<T>, em que o último a entrar é o primeiro a sair. Veja: Memória, Recursão e Stack. - Polimorfismo
- Uma variável de um tipo-mãe guardando um objeto de uma filha e rodando a versão da filha: num
List<Conta>, cada conta mostra o seu próprioTipo. Veja: Polimorfismo. - POO (programação orientada a objetos)
- Organizar o programa em objetos que juntam dados e comportamento. Os quatro pilares: encapsulamento, herança, polimorfismo e abstração. Veja: O que é POO.
- Projeto
- Uma pasta com um
.csproje os arquivos.cs, criada comdotnet new console -o Nomee rodada comdotnet run. Necessário para vários arquivos, pacotes e testes. Veja: Projetos (dotnet new console) e Soluções. - Propriedade
- Um membro que parece um campo de fora (
conta.Saldo), mas é feito de acessadoresgeteset, que podem conferir regras ou calcular o valor. Veja: Propriedades. - Publicar
- Gerar a versão do programa para entregar a outras pessoas, com
dotnet publish: com ou sem o .NET junto, ou como programa nativo (AOT). Veja: Publicar o Programa.
Q
- Queue (fila)
- A coleção em que o primeiro a entrar é o primeiro a sair:
Enqueuepõe no fim,Dequeuetira do começo. Veja: Queue.
R
- readonly
- Um campo que só recebe valor na declaração ou no construtor e depois não muda. Diferente de
const, o valor pode ser calculado quando o programa roda. Veja: readonly e init. - Record C# 9
- Um tipo para dados, criado numa linha:
record Aluno(string Nome, double Nota);. Já vem comToString, igualdade pelo conteúdo e cópia comwith. Veja: Records. - Recursão
- Um método que chama a si mesmo. Precisa de um caso base que pare as chamadas, senão a pilha enche e o programa cai com
Stack overflow.. Veja: Recursão. - ref
- Passa a própria variável para o método, em vez de uma cópia: o que o método mudar, muda lá fora. Veja: ref, out e in.
- Referência
- O que uma variável de um tipo de referência guarda: o endereço do objeto no heap, e não o objeto. Copiar a variável copia o endereço. Veja: Valor × Referência.
- Referências anuláveis (
string?) C# 8 - A conferência do compilador que separa
string(nuncanull) destring?(pode sernull) e avisa, comCS8602e parentes, onde umnullpode causar uma exceção. Vem ligada (Nullable=enable). Veja: Referências Anuláveis. - Reflexão
- O programa examinando os próprios tipos enquanto roda: listar propriedades, achar métodos pelo nome. É assim que o
JsonSerializerdescobre as propriedades. Veja: Reflexão. - Regex (expressão regular)
- Um padrão de texto, como
\d{5}-\d{3}para um CEP, usado para validar, procurar e trocar pedaços de texto. Veja: Expressões Regulares. - Roslyn
- O nome do compilador do C#, o mesmo no
dotnete no editor do guia. Veja: .NET e O Editor do Guia. - Runtime
- A parte do .NET necessária para rodar programas (o CLR e a biblioteca). Para criar programas é preciso o SDK, que já inclui o runtime. Veja: .NET: SDK, Runtime e CLR.
S
- SDK (Software Development Kit)
- O pacote para programar em .NET: o comando
dotnet, o compilador, os modelos de projeto e o runtime. No Ubuntu,sudo apt install dotnet-sdk-10.0. Veja: Instalar no Linux e .NET. - sealed
- Uma classe selada não pode ter filhas; um
sealed overrideimpede as filhas de substituírem de novo. Veja: sealed. - Serializar
- Transformar um objeto em texto (ou bytes) para guardar ou enviar, como em JSON; desserializar é o caminho de volta. Veja: JSON.
- Sobrecarga
- Vários métodos com o mesmo nome e listas de parâmetros diferentes; o compilador escolhe pela chamada. Também existe sobrecarga de operadores, como ensinar o
+a somar dois objetos seus. Veja: Sobrecarga e Sobrecarga de Operadores. - Solução (
.slnx) - Um arquivo que junta vários projetos (o programa, uma biblioteca, os testes) para compilar tudo de uma vez. O .NET 10 usa o formato
.slnx. Veja: Soluções e Vários Projetos. - Span (
Span<T>) - Uma "janela" sobre um pedaço de um array ou texto, sem copiar. Usada para código rápido. Veja: Span<T>.
- Stack trace (rastro da pilha)
- As linhas
at … in arquivo.cs:line Nde uma exceção, que mostram onde ela nasceu e quem chamou quem. Leia de cima para baixo. Veja: Exceções e Depuração. - static
- Um membro que é da classe, e não de cada objeto: existe um só, usado pelo nome da classe (
Math.Max,Contador.Total). Numa função local,staticproíbe usar as variáveis de fora. Veja: static. - Stream
- Um "fluxo" de dados lido ou escrito aos poucos, como um arquivo com
StreamReadereStreamWriter. Veja: StreamReader e StreamWriter. - string
- O tipo de texto:
"Olá". É um tipo de referência imutável, e o==compara o conteúdo. Veja: Strings, Métodos de String e Referência de string. - StringBuilder
- Uma classe para montar textos aos poucos sem criar uma string nova a cada pedaço. Num laço grande, é muito mais leve que
+=. Veja: StringBuilder. - Struct
- Um tipo de valor com campos e métodos, como uma classe pequena: a atribuição copia o conteúdo inteiro.
int,doubleeDateTimesão structs. Veja: Structs. - switch
- Escolhe um caminho pelo valor:
switch (opcao) { case "1": …; break; default: …; break; }. Em C#, umcasenão pode "cair" no seguinte (CS0163). Veja: switch e Expressões switch.
T
- Task
- Um objeto que representa um trabalho que vai terminar no futuro, com ou sem resultado (
Task<int>). É o que um métodoasyncdevolve. Veja: Task e async e await. - Ternário (
? :) - Um
if/elseque devolve um valor numa linha:idade >= 18 ? "adulto" : "menor". Veja: Operador Ternário. - Testes automatizados
- Código que confere outro código: um projeto xUnit com métodos
[Fact]eAssert.Equal, rodados comdotnet test. Veja: Testes (xUnit). - this
- Dentro de uma classe, o próprio objeto que está executando o método:
this.nome = nome;. Veja: this. - Thread
- Uma linha de execução: o programa começa com uma, e pode criar outras para fazer coisas ao mesmo tempo. Na prática, prefira
Task. Veja: Threads e Parallel e PLINQ. - throw
- Lança uma exceção:
throw new ArgumentException("…");. Dentro de umcatch,throw;sozinho relança a mesma exceção. Veja: throw. - Tipo
- O que uma variável pode guardar e o que dá para fazer com ela:
int,double,string,boolou uma classe sua. Em C#, o tipo de uma variável nunca muda. Veja: Tipos de Dados e Tipos e Limites. - Tipo de valor × tipo de referência
- Tipos de valor (
int,bool, structs, enums) guardam o próprio valor, e a atribuição copia. Tipos de referência (classes,string, arrays) guardam o endereço do objeto, e a atribuição copia o endereço. Veja: Valor × Referência. - try
- O bloco com o código que pode lançar uma exceção, seguido de
catche/oufinally. Veja: try e catch. - Tupla
- Vários valores juntos sem criar um tipo:
(string Nome, int Idade) pessoa = ("Ana", 31);. Bom para um método devolver mais de um valor. Veja: Tuplas.
U
- using (diretiva)
- No topo do arquivo,
using System.Text.Json;deixa usar os tipos daquele namespace sem o nome completo. Os projetos já trazem váriosusingimplícitos. Veja: Namespaces e using. - using (instrução)
using (var arquivo = …) { … }ouusing var arquivo = …;chamam oDisposeno fim, fechando o recurso mesmo com exceção. Veja: using e IDisposable.- UTF-8
- A codificação de texto padrão do .NET e do Linux, em que letras acentuadas ocupam mais de um byte. Salve os arquivos
.csem UTF-8. Veja: Arquivos e Editores e IDEs.
V
- var
- Deixa o compilador descobrir o tipo pelo valor:
var nome = "Ana";éstring. Não é um tipo "solto": o tipo continua fixo. Veja: Inferência com var. - Variável
- Um espaço da memória com nome e tipo, que guarda um valor:
int idade = 31;. Veja: Variáveis. - virtual
- Marca um membro da classe-mãe que as filhas podem substituir com
override. Veja: virtual e override. - void
- "Nada": o tipo de retorno de um método que não devolve valor. Veja: Métodos e Valor de Retorno.
W
- WebAssembly
- Um formato que deixa o navegador rodar programas compilados. O editor do guia roda o .NET em WebAssembly, por isso compila e executa C# de verdade sem instalar nada. Veja: O Editor do Guia.
- Where
- O método LINQ que filtra:
produtos.Where(p => p.Preco < 10)fica só com os que passam na condição. Veja: Filtrar e Projetar (Where, Select). - while
- O laço que repete enquanto a condição for verdadeira, testando antes de cada volta (pode não rodar nenhuma). Veja: while.
- with
- Cria uma cópia de um record (ou struct) com algumas propriedades trocadas:
bruno with { Nota = 8 }. Veja: Records.
Y
- yield return
- Faz um método entregar os itens de uma sequência um por vez, pausando entre um e outro. O
foreachpuxa o próximo quando precisa. Veja: Iteradores (yield return).
E agora?
Quer testar o que você sabe? Faça o Quiz, com 40 perguntas dos três níveis. Para ver os termos funcionando juntos, siga um dos Projetos.