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. Este documento será refinado por meio do trabalho C# com o Comitê de padrões ECMA.This document will be refined through work with the ECMA C# standards committee. 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. Eles estão no formulário de proposta de rascunho.These are in draft proposal form. Essas especificações serão refinadas e enviadas para o Comitê de padrões ECMA para revisão formal e Incorporation em uma versão futura C# do padrão.These specifications will be refined and submitted to the ECMA standards committee for formal review and incorporation into a future version of the C# Standard.

C#7,0 propostas de especificaçãoC# 7.0 Specification 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.

C#7,1 propostas de especificaçãoC# 7.1 Specification 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.

C#7,2 propostas de especificaçãoC# 7.2 Specification 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.

C#7,3 propostas de especificaçãoC# 7.3 Specification 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.

C#8,0 propostas de especificaçãoC# 8.0 Specification Proposals
C#8,0 está disponível com o .NET Core 3,0.C# 8.0 is available with .NET Core 3.0. Os recursos incluem tipos de referência anuláveis, correspondência de padrões recursivos, métodos de interface padrão, fluxos assíncronos, intervalos e índices, com base em padrões usando e usando declarações, atribuição de União nula e membros de instância ReadOnly.The features include nullable reference types, recursive pattern matching, default interface methods, async streams, ranges and indexes, pattern based using and using declarations, null coalescing assignment, and readonly instance members.

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.