Referência de C#C# Reference

Esta seção fornece o material de referência sobre palavras-chave do C#, operadores, caracteres especiais, diretivas de pré-processador, opções de compilador e erros de compilador e avisos.This section provides reference material about C# keywords, operators, special characters, preprocessor directives, compiler options, and compiler errors and warnings.

Nesta seçãoIn This Section

Palavras-chave do C#C# Keywords
Fornece links para informações sobre a sintaxe e as palavras-chave do C#.Provides links to information about C# keywords and syntax.

Operadores do C#C# Operators
Fornece links para informações sobre a sintaxe e os operadores do C#.Provides links to information about C# operators and syntax.

Caracteres especiais de C#C# Special Characters
Fornece links para informações sobre caracteres especiais contextuais em C# e seu uso.Provides links to information about special contextual characters in C# and their usage.

Diretivas do pré-processador do C#C# Preprocessor Directives
Fornece links para informações sobre os comandos do compilador para inserir no código-fonte do C#.Provides links to information about compiler commands for embedding in C# source code.

Opções do compilador de C#C# Compiler Options
Inclui informações sobre as opções do compilador e como usá-las.Includes information about compiler options and how to use them.

Erros do Compilador do C#C# Compiler Errors
Inclui snippets de código que demonstram a causa e a correção de erros do compilador do C# e avisos.Includes code snippets that demonstrate the cause and correction of C# compiler errors and warnings.

C# Language Specification (Especificação da linguagem C#)C# Language Specification
Especificação de linguagem do C# 6.0.The C# 6.0 language specification. Este é um projeto de proposta da linguagem C# 6.0.This is a draft proposal for the C# 6.0 language. A versão 5.0 foi lançada em dezembro de 2017 como o documento Padrão ECMA-334 – 5ª Edição.Version 5.0 has been released in December 2017 as the Standard ECMA-334 5th Edition document.

Os recursos que foram implementados nas versões do C# depois da 6.0 são representados em propostas de especificação de linguagem.The features that have been implemented in C# versions after 6.0 are represented in language specification proposals. Esses documentos descrevem os deltas para a especificação da linguagem a fim de adicionar os novos recursos.These documents describe the deltas to the language spec in order to add these new features.

Propostas da linguagem C# 7.0C# 7.0 Language Proposals
Implementamos diversos recursos novos no C# 7.0.There are a number of new features implemented in C# 7.0. Entre eles estão correspondência de padrões, funções locais, declarações de variável out, expressões throw, literais binários e separadores de dígito.They include pattern matching, local functions, out variable declarations, throw expressions, binary literals, and digit separators. Esta pasta contém as especificações de cada um desses recursos.This folder contains the specifications for each of those features.

Propostas da Linguagem C# 7.1C# 7.1 Language Proposals
Há novos recursos adicionados no C# 7.1.There are new features added in C# 7.1. Primeiramente, você pode gravar um método Main que retorna Task ou Task<int>.First, you can write a Main method that returns Task or Task<int>. Isso permite que você adicione o modificador async ao Main.This enables you to add the async modifier to Main. A expressão default pode ser usada sem um tipo em locais onde o tipo pode ser inferido.The default expression can be used without a type in locations where the type can be inferred. Além disso, os nomes dos membros de tupla podem ser inferidos.Also, tuple member names can be inferred. Por fim, a correspondência de padrões pode ser usada com genéricos.Finally, pattern matching can be used with generics.

Propostas da Linguagem C# 7.2C# 7.2 Language Proposals
O C# 7.2 adicionou a uma série de recursos pequenos.C# 7.2 added a number of small features. Você pode passar argumentos por referência de somente leitura usando a palavra-chave in.You can pass arguments by readonly reference using the in keyword. Há uma série de alterações de nível inferior para dar suporte à segurança de tempo de compilação para Span e tipos relacionados.There are a number of low-level changes to support compile-time safety for Span and related types. Você pode usar argumentos nomeados nos quais os argumentos posteriores são posicionais, em algumas situações.You can use named arguments where later arguments are positional, in some situations. O modificador de acesso private protected permite que você especifique que os chamadores são limitados aos tipos derivados, implementados no mesmo assembly.The private protected access modifier enables you to specify that callers are limited to derived types implemented in the same assembly. O operador ?: pode resolver em uma referência a uma variável.The ?: operator can resolve to a reference to a variable. Você também pode formatar números hexadecimais e binários usando um separador de dígito à esquerda.You can also format hexadecimal and binary numbers using a leading digit separator.

Propostas da Linguagem C# 7.3C# 7.3 Language Proposals
C# 7.3 é outra versão de ponto que inclui várias atualizações pequenas.C# 7.3 is another point release that includes several small updates. Você pode usar novas restrições em parâmetros de tipo genérico.You can use new constraints on generic type parameters. Outras alterações facilitam trabalhar com campos fixed, incluindo o uso de alocações stackalloc.Other changes make it easier to work with fixed fields, including using stackalloc allocations. As variáveis locais declaradas com a palavra-chave ref podem ser reatribuídas para se referir ao novo armazenamento.Local variables declared with the ref keyword may be reasssigned to refer to new storage. Você pode colocar os atributos em propriedades autoimplementadas que direcionam o campo de suporte gerado pelo compilador.You can place attributes on auto-implemented properties that target the compiler-generated backing field. As variáveis de expressão podem ser usadas em inicializadores.Expression variables can be used in initializers. As tuplas podem ser comparadas quanto à igualdade (ou desigualdade).Tuples can be compared for equality (or inequality). Também houve algumas melhorias para a resolução de sobrecarga.There have also been some improvements to overload resolution.

Propostas da Linguagem C# 8.0 C# 8.0 está disponível na versão prévia.C# 8.0 Language Proposals C# 8.0 is available in preview. As seguintes propostas são as versões atuais das especificações para esses recursos.The following proposals are the current versions of the specifications for those features. Algumas são mais completas. Outras ainda são um trabalho em andamento.Some are more complete; some are still a work in progress. Os recursos que foram fornecidos nas versões prévias incluem tipos de referência que permitem valor nulo, correspondência de padrões recursiva, fluxos assíncronos, intervalos e índices, uso com base em padrão e declarações de uso, além de atribuição de união nula.The features that have shipped in previews include nullable reference types, recursive pattern matching, async streams, ranges and indexes, pattern based using and using declarations, and null coalescing assignment.

Guia do C#C# Guide
Fornece um portal para a documentação do Visual C#.Provides a portal to Visual C# documentation.

Usando o Ambiente de Desenvolvimento do Visual Studio para C#Using the Visual Studio Development Environment for C#
Fornece links para tópicos conceituais e de tarefas que descrevem o IDE e o Editor.Provides links to conceptual and task topics that describe the IDE and Editor.

Guia de Programação em C#C# Programming Guide
Inclui informações sobre como usar a linguagem de programação do C#.Includes information about how to use the C# programming language.