Índice detalhado
- Preâmbulo
- Introdução
- §1 Âmbito de aplicação
- §2 Referências normativas
- §3 Termos e definições
- §4 Descrição geral
- §5 Conformidade
- §6 Estrutura lexical
- §6.1 Programas
- §6.2 Gramáticas
- §6.3 Análise lexical
- §6.4 Fichas
- §6.5 Diretivas de pré-processamento
- §6.5.1 Generalidades
- §6.5.2 Símbolos de compilação condicional
- §6.5.3 Expressões de pré-processamento
- §6.5.4 Diretivas relativas à definição
- §6.5.5 Diretivas de compilação condicional
- §6.5.6 Diretivas de diagnóstico
- §6.5.7 Diretivas regionais
- §6.5.8 Diretivas de linha
- §6.5.9 Diretiva anulável
- §6.5.10 Diretivas Pragma
- §7 Conceitos básicos
- §8 Tipos
- §8.1 Generalidades
- §8.2 Tipos de referência
- §8.3 Tipos de valores
- §8.3.1 Generalidades
- §8.3.2 O tipo System.ValueType
- §8.3.3 Construtores padrão
- §8.3.4 Tipos de estruturas
- §8.3.5 Tipos simples
- §8.3.6 Tipos integrais
- §8.3.7 Tipos de vírgula flutuante
- §8.3.8 O tipo decimal
- §8.3.9 O tipo Bool
- §8.3.10 Tipos de enumeração
- §8.3.11 Tipos de tuplas
- §8.3.12 Tipos de valor anulável
- §8.3.13 Boxe e unboxing
- §8.4 Tipos construídos
- §8.5 Parâmetros de tipo
- §8.6 Tipos de árvore de expressão
- §8.7 O tipo dinâmico
- §8.8 Tipos não geridos
- §8.9 Tipos de referência e anulabilidade
- §9 Variáveis
- §9.1 Generalidades
- §9.2 Categorias de variáveis
- §9.3 Valores por defeito
- §9.4 Atribuição definitiva
- §9.4.1 Generalidades
- §9.4.2 Variáveis inicialmente atribuídas
- §9.4.3 Variáveis inicialmente não atribuídas
- §9.4.4 Regras precisas para determinar a cessão definitiva
- §9.4.4.1 Generalidades
- §9.4.4.2 Regras gerais para as declarações
- §9.4.4.3 Instruções em bloco, declarações verificadas e não verificadas
- §9.4.4.4 Enunciados de expressão
- §9.4.4.5 Declarações de declaração
- §9.4.4.6 Se as declarações
- §9.4.4.7 Instruções de mudança
- §9.4.4.8 Enquanto declarações
- §9.4.4.9 Fazer declarações
- §9.4.4.10 Para declarações
- §9.4.4.11 Interromper, continuar e ir para declarações
- §9.4.4.12 Declarações de lançamento
- §9.4.4.13 Declarações de devolução
- §9.4.4.14 Declarações de tentativa de captura
- §9.4.4.15 Declarações de tentativa final
- §9.4.4.16 Declarações Try-catch-finally
- §9.4.4.17 Para cada declaração
- §9.4.4.18 Utilização de declarações
- §9.4.4.19 Instruções de bloqueio
- §9.4.4.20 Demonstrações de rendimento
- §9.4.4.21 Regras gerais para expressões constantes
- §9.4.4.22 Regras gerais para expressões simples
- §9.4.4.23 Regras gerais para expressões com expressões incorporadas
- §9.4.4.24 Expressões de invocação e expressões de criação de objetos
- §9.4.4.25 Expressões de atribuição simples
- §9.4.4.26 && expressões
- §9.4.4.27 || expressões
- §9.4.4.28 ! expressões
- §9.4.4.29 ?? expressões
- §9.4.4.30 ?: expressões
- §9.4.4.31 Funções anónimas
- §9.4.4.32 Expressões de lançamento
- §9.4.4.33 Regras para variáveis em funções locais
- §9.4.4.34 expressões padrão
- §9.5 Referências variáveis
- §9.6 Atomicidade das referências variáveis
- §9.7 Variáveis de referência e retornos
- §9.7.1 Generalidades
- §9.7.2 Ref contextos seguros
- §9.7.2.1 Generalidades
- §9.7.2.2 Variável local ref contexto seguro
- §9.7.2.3 Parâmetro ref contexto seguro
- §9.7.2.4 Contexto seguro de referência de campo
- §9.7.2.5 Operadores
- §9.7.2.6 Invocação da função
- §9.7.2.7 Valores
- §9.7.2.8 Invocação do construtor
- §9.7.2.9 Limitações das variáveis de referência
- §10 Conversões
- §10.1 Generalidades
- §10.2 Conversões implícitas
- §10.2.1 Generalidades
- §10.2.2 Conversão de identidade
- §10.2.3 Conversões numéricas implícitas
- §10.2.4 Conversões implícitas de enumeração
- §10.2.5 Conversões implícitas de cadeias interpoladas
- §10.2.6 Conversões implícitas anuláveis
- §10.2.7 Conversões literais nulas
- §10.2.8 Conversões de referência implícitas
- §10.2.9 Conversões de boxe
- §10.2.10 Conversões dinâmicas implícitas
- §10.2.11 Conversões implícitas de expressões constantes
- §10.2.12 Conversões implícitas envolvendo parâmetros de tipo
- §10.2.13 Conversões implícitas de tuplas
- §10.2.14 Conversões implícitas definidas pelo utilizador
- §10.2.15 Conversões de funções anónimas e conversões de grupos de métodos
- §10.2.16 Conversões literais padrão
- §10.2.17 Conversões implícitas de lançamento
- §10.3 Conversões explícitas
- §10.3.1 Generalidades
- §10.3.2 Conversões numéricas explícitas
- §10.3.3 Conversões explícitas de enumeração
- §10.3.4 Conversões explícitas anuláveis
- §10.3.5 Conversões de referência explícitas
- §10.3.6 Conversões explícitas de tuplas
- §10.3.7 Conversões de Unboxing
- §10.3.8 Conversões explícitas envolvendo parâmetros de tipo
- §10.3.9 Conversões explícitas definidas pelo utilizador
- §10.4 Conversões padrão
- §10.5 Conversões definidas pelo utilizador
- §10.6 Conversões envolvendo tipos anuláveis
- §10.7 Conversões de funções anónimas
- §10.8 Conversões de grupo de métodos
- §11 Padrões e correspondência de padrões
- §12 Expressões
- §12.1 Generalidades
- §12.2 Classificações das expressões
- §12.3 Vinculação estática e dinâmica
- §12.4 Operadores
- §12.4.1 Generalidades
- §12.4.2 Precedência do operador e associatividade
- §12.4.3 Sobrecarga do operador
- §12.4.4 Resolução de sobrecarga do operador unário
- §12.4.5 Resolução de sobrecarga do operador binário
- §12.4.6 Operadores candidatos definidos pelo utilizador
- §12.4.7 Promoções numéricas
- §12.4.8 Operadores levantados
- §12.5 Pesquisa de membros
- §12.6 Membros da função
- §12.6.1 Generalidades
- §12.6.2 Listas de argumentos
- §12.6.3 Inferência de tipo
- §12.6.3.1 Generalidades
- §12.6.3.2 Primeira fase
- §12.6.3.3 A segunda fase
- §12.6.3.4 Tipos de entrada
- §12.6.3.5 Tipos de saída
- §12.6.3.6 Dependência
- §12.6.3.7 Inferências do tipo de saída
- §12.6.3.8 Inferências explícitas do tipo de parâmetro
- §12.6.3.9 Inferências exatas
- §12.6.3.10 Inferências de limite inferior
- §12.6.3.11 Inferências de limite superior
- §12.6.3.12 Fixação
- §12.6.3.13 Tipo de retorno inferido
- §12.6.3.14 Inferência de tipo para conversão de grupos de métodos
- §12.6.3.15 Encontrar o melhor tipo comum de um conjunto de expressões
- §12.6.4 Resolução de sobrecarga
- §12.6.4.1 Generalidades
- §12.6.4.2 Membro da função aplicável
- §12.6.4.3 Membro com melhor função
- §12.6.4.4 Melhor modo de passagem de parâmetros
- §12.6.4.5 Melhor conversão da expressão
- §12.6.4.6 Expressão exatamente correspondente
- §12.6.4.7 Melhor objetivo de conversão
- §12.6.4.8 Sobrecarga nas classes genéricas
- §12.6.5 Verificação em tempo de compilação da invocação dinâmica de membros
- §12.6.6 Invocação do membro da função
- §12.7 Desconstrução
- §12.8 Expressões primárias
- §12.8.1 Generalidades
- §12.8.2 Literais
- §12.8.3 Expressões de cadeia interpoladas
- §12.8.4 Nomes simples
- §12.8.5 Expressões entre parênteses
- §12.8.6 Expressões tuplas
- §12.8.7 Acesso dos membros
- §12.8.8 Acesso de Membro Condicional Nulo
- §12.8.9 Expressões de perdão nulo
- §12.8.10 Expressões de invocação
- §12.8.10.1 Generalidades
- §12.8.10.2 Invocações de método
- §12.8.10.3 Invocações do método de extensão
- §12.8.10.4 Invocações de delegados
- §12.8.11 Expressão de invocação condicional nula
- §12.8.12 Acesso aos elementos
- §12.8.12.1 Generalidades
- §12.8.12.2 Acesso à matriz
- §12.8.12.3 Acesso ao indexador
- §12.8.13 Acesso a elementos condicionais nulos
- §12.8.14 Este acesso
- §12.8.15 Acesso à base
- §12.8.16 Operadores de incremento e decréscimo Postfix
- §12.8.17 O novo operador
- §12.8.17.1 Generalidades
- §12.8.17.2 Expressões de criação de objetos
- §12.8.17.3 Inicializadores de objeto
- §12.8.17.4 Inicializadores de coleção
- §12.8.17.5 Expressões de criação de matrizes
- §12.8.17.6 Delegar expressões de criação
- §12.8.17.7 Expressões anónimas de criação de objetos
- §12.8.18 O tipo de operador
- §12.8.19 A dimensão do operador
- §12.8.20 Os operadores controlados e não controlados
- §12.8.21 Expressões de valor padrão
- §12.8.22 Alocação de pilha
- §12.8.23 Nome do operador
- §12.8.24 Expressões anónimas do método
- §12.9 Operadores unários
- §12.10 Operadores aritméticos
- §12.11 Operadores de turnos
- §12.12 Operadores de ensaios relacionais e de tipo
- §12.12.1 Generalidades
- §12.12.2 Operadores de comparação de números inteiros
- §12.12.3 Operadores de comparação de vírgula flutuante
- §12.12.4 Operadores de comparação decimal
- §12.12.5 Operadores booleanos de igualdade
- §12.12.6 Operadores de comparação de enumeração
- §12.12.7 Operadores de igualdade de tipo de referência
- §12.12.8 Operadores de igualdade de cadeias
- §12.12.9 Delegar operadores de igualdade
- §12.12.10 Operadores de igualdade entre os tipos de valor anulável e o literal nulo
- §12.12.11 Operadores de igualdade de tupla
- §12.12.12 O operador é
- §12.12.12.1 O operador do tipo is
- §12.12.12.2 O operador is-pattern
- §12.12.13 O operador
- §12.13 Operadores lógicos
- §12.14 Operadores lógicos condicionais
- §12.15 O operador coalescente nulo
- §12.16 O operador de expressão de lançamento
- §12.17 Expressões da declaração
- §12.18 Operador condicional
- §12.19 Expressões de função anónimas
- §12.19.1 Generalidades
- §12.19.2 Assinaturas de funções anónimas
- §12.19.3 Órgãos funcionais anónimos
- §12.19.4 Resolução de sobrecarga
- §12.19.5 Funções anónimas e vinculação dinâmica
- §12.19.6 Variáveis externas
- §12.19.6.1 Generalidades
- §12.19.6.2 Variáveis externas capturadas
- §12.19.6.3 Instanciação de variáveis locais
- §12.19.7 Avaliação de expressões de função anónimas
- §12.19.8 Exemplo de implementação
- §12.20 Expressões de consulta
- §12.20.1 Generalidades
- §12.20.2 Ambiguidades nas expressões de consulta
- §12.20.3 Tradução de expressões de consulta
- §12.20.3.1 Generalidades
- §12.20.3.2 Expressões de consulta com continuações
- §12.20.3.3 Tipos explícitos de variáveis de intervalo
- §12.20.3.4 Degenerar expressões de consulta
- §12.20.3.5 De, vamos onde, juntar e ordenar por cláusulas
- §12.20.3.6 Selecionar cláusulas
- §12.20.3.7 Cláusulas de grupo
- §12.20.3.8 Identificadores transparentes
- §12.20.4 O padrão de expressão de consulta
- §12.21 Operadores de atribuição
- §12.22 Expressão
- §12.23 Expressões constantes
- §12.24 Expressões booleanas
- §13 Declarações
- §13.1 Generalidades
- §13.2 Pontos finais e acessibilidade
- §13.3 Blocos
- §13.4 A declaração vazia
- §13.5 Declarações rotuladas
- §13.6 Declarações
- §13.7 Declarações de expressão
- §13.8 Declarações de seleção
- §13.9 Declarações de iteração
- §13.10 Instruções de salto
- §13.11 A declaração de tentativa
- §13.12 As declarações verificadas e não verificadas
- §13.13 A declaração de bloqueio
- §13.14 A declaração de utilização
- §13.15 A demonstração de rendimentos
- §14 Espaços de nomes
- §15 Aulas
- §15.1 Generalidades
- §15.2 Declarações de classe
- §15.2.1 Generalidades
- §15.2.2 Modificadores de classe
- §15.2.2.1 Generalidades
- §15.2.2.2 Classes abstratas
- §15.2.2.3 Classes seladas
- §15.2.2.4 Classes estáticas
- §15.2.2.4.1 Generalidades
- §15.2.2.4.2 Referenciação de tipos de classes estáticas
- §15.2.3 Parâmetros de tipo
- §15.2.4 Especificação de base de classe
- §15.2.5 Restrições de parâmetros de tipo
- §15.2.6 Órgão de classe
- §15.2.7 Declarações parciais
- §15.3 Membros da classe
- §15.3.1 Generalidades
- §15.3.2 O tipo de instância
- §15.3.3 Membros de tipos construídos
- §15.3.4 Herança
- §15.3.5 O novo modificador
- §15.3.6 Modificadores de acesso
- §15.3.7 Tipos de componentes
- §15.3.8 Membros estáticos e de instância
- §15.3.9 Tipos aninhados
- §15.3.10 Nomes de membros reservados
- §15.3.10.1 Generalidades
- §15.3.10.2 Nomes de membros reservados para propriedades
- §15.3.10.3 Nomes de membros reservados para eventos
- §15.3.10.4 Nomes de membros reservados aos indexadores
- §15.3.10.5 Nomes dos membros reservados aos finalizadores
- §15.3.10.6 Nomes de métodos reservados aos operadores
- §15.4 Constantes
- §15.5 Campos
- §15.6 Métodos
- §15.6.1 Generalidades
- §15.6.2 Parâmetros do método
- §15.6.2.1 Generalidades
- §15.6.2.2 Parâmetros de valor
- §15.6.2.3 Parâmetros por referência
- §15.6.2.3.1 Generalidades
- §15.6.2.3.2 Parâmetros de entrada
- §15.6.2.3.3 Parâmetros de referência
- §15.6.2.3.4 Parâmetros de saída
- §15.6.2.4 Matrizes de parâmetros
- §15.6.3 Métodos estáticos e de instância
- §15.6.4 Métodos virtuais
- §15.6.5 Substituir métodos
- §15.6.6 Métodos selados
- §15.6.7 Métodos abstratos
- §15.6.8 Métodos externos
- §15.6.9 Métodos parciais
- §15.6.10 Métodos de extensão
- §15.6.11 Corpo do método
- §15.7 Propriedades
- §15.8 Eventos
- §15.9 Indexadores
- §15.10 Operadores
- §15.11 Construtores de instância
- §15.12 Construtores estáticos
- §15.13 Finalizadores
- §15.14 Iteradores
- §15.14.1 Generalidades
- §15.14.2 Interfaces do enumerador
- §15.14.3 Interfaces enumeráveis
- §15.14.4 Tipo de rendimento
- §15.14.5 Objetos do enumerador
- §15.14.5.1 Generalidades
- §15.14.5.2 O método MoveNext
- §15.14.5.3 A propriedade atual
- §15.14.5.4 O método de eliminação
- §15.14.6 Objetos enumeráveis
- §15.14.6.1 Generalidades
- §15.14.6.2 O método GetEnumerator
- §15.15 Funções assíncronas
- §16 Estruturas
- §16.1 Generalidades
- §16.2 Declarações de estrutura
- §16.3 Membros da estrutura
- §16.4 Diferenças de classe e estrutura
- §16.4.1 Generalidades
- §16.4.2 Semântica dos valores
- §16.4.3 Herança
- §16.4.4 Cessão
- §16.4.5 Valores por defeito
- §16.4.6 Boxe e unboxing
- §16.4.7 Significado deste
- §16.4.8 Inicializadores de campo
- §16.4.9 Construtores
- §16.4.10 Construtores estáticos
- §16.4.11 Propriedades implementadas automaticamente
- §16.4.12 Restrição de contexto seguro
- §16.4.12.1 Generalidades
- §16.4.12.2 Parâmetro contexto seguro
- §16.4.12.3 Contexto seguro variável local
- §16.4.12.4 Contexto seguro no terreno
- §16.4.12.5 Operadores
- §16.4.12.6 Método e invocação de propriedade
- §16.4.12.7 Stackalloc
- §16.4.12.8 Invocação do construtor
- §17 Matrizes
- §18 Interfaces
- §18.1 Generalidades
- §18.2 Declarações de interface
- §18.3 Corpo da interface
- §18.4 Membros da interface
- §18.5 Nomes de membros qualificados da interface
- §18.6 Implementações de interface
- §18.6.1 Generalidades
- §18.6.2 Implementações explícitas de membros da interface
- §18.6.3 Singularidade das interfaces implementadas
- §18.6.4 Aplicação de métodos genéricos
- §18.6.5 Mapeamento de interface
- §18.6.6 Herança da implementação da interface
- §18.6.7 Reimplementação da interface
- §18.6.8 Classes abstratas e interfaces
- §19 Enums
- §20 Delegados
- §21 Exceções
- §22 Atributos
- §22.1 Generalidades
- §22.2 Classes de atributos
- §22.3 Especificação de atributos
- §22.4 Instâncias de atributos
- §22.5 Atributos reservados
- §22.5.1 Generalidades
- §22.5.2 O atributo AttributeUsage
- §22.5.3 O atributo Condicional
- §22.5.4 O atributo obsoleto
- §22.5.5 O atributo AsyncMethodBuilder
- §22.5.6 Atributos de informações do chamador
- §22.5.7 Atributos de análise de código
- §22.5.7.1 Generalidades
- §22.5.7.2 O atributo AllowNull
- §22.5.7.3 O atributo DisallowNull
- §22.5.7.4 O atributo DoesNotReturn
- §22.5.7.5 O atributo DoesNotReturnIf
- §22.5.7.6 O atributo MaybeNull
- §22.5.7.7 O atributo MaybeNullWhen
- §22.5.7.8 O atributo NotNull
- §22.5.7.9 O atributo NotNullIfNotNull
- §22.5.7.10 O atributo NotNullWhen
- §22.6 Atributos para interoperação
- §23 Código inseguro
- §A Gramática
- §B Questões de portabilidade
- §C Biblioteca padrão
- §D Comentários sobre a documentação
- §D.1 Generalidades
- §D.2 Introdução
- §D.3 Tags recomendadas
- §D.3.1 Generalidades
- §D.3.2<c>
- §D.3.3<código>
- §D.3.4<exemplo>
- §D.3.5<exceção>
- §D.3.6<incluem>
- §D.3.7<lista>
- §D.3.8<para>
- §D.3.9<param>
- §D.3.10<paramref>
- §D.3.11<autorização>
- §D.3.12<observações>
- §D.3.13<devoluções>
- §D.3.14<ver>
- §D.3.15<ver também>
- §D.3.16<resumo>
- §D.3.17<tipoparam>
- §D.3.18<tipoparamref>
- §D.3.19<valor>
- §D.4 Processamento do processo de documentação
- §D.5 Um exemplo
- §E Bibliografia
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.
ECMA C# draft specification