Справочник по C#C# Reference

Этот раздел содержит подробные справочные сведения о ключевых словах, операторах, специальных символах, директивах препроцессора, параметрах компилятора и ошибках и предупреждениях компилятора в среде C#.This section provides reference material about C# keywords, operators, special characters, preprocessor directives, compiler options, and compiler errors and warnings.

В этом разделеIn This Section

Ключевые слова в C#C# Keywords
Ссылки на сведения о ключевых словах и синтаксисе языка C#.Provides links to information about C# keywords and syntax.

Операторы в C#C# Operators
Ссылки на сведения об операторах и синтаксисе языка C#.Provides links to information about C# operators and syntax.

Специальные символы в C#C# Special Characters
Предоставляет ссылки на сведения о специальных контекстные символов в C# и их использовании.Provides links to information about special contextual characters in C# and their usage.

Директивы препроцессора C#C# Preprocessor Directives
Ссылки на сведения о командах компилятора для внедрения в исходном коде C#.Provides links to information about compiler commands for embedding in C# source code.

Параметры компилятора C# C# Compiler Options
Сведения о параметрах компилятора и их использовании.Includes information about compiler options and how to use them.

Ошибки компилятора C#C# Compiler Errors
Фрагменты кода, демонстрирующие причины и способы исправления ошибок и предупреждений компилятора C#.Includes code snippets that demonstrate the cause and correction of C# compiler errors and warnings.

Спецификация языка C#C# Language Specification
Спецификация языка C# версии 6.0The C# 6.0 language specification. Это черновой вариант для языка C# версии 6.0.This is a draft proposal for the C# 6.0 language. Версия 5.0 была выпущена в декабре 2017 г. как стандартный 5-й выпуск ECMA-334.Version 5.0 has been released in December 2017 as the Standard ECMA-334 5th Edition document.

Возможности, которые были реализованы в языке C# версий более поздних чем 6.0, представлены в предложениях по спецификации языка.The features that have been implemented in C# versions after 6.0 are represented in language specification proposals. В этих документах описываются изменения спецификации языка, связанные с добавлением новых функций.These documents describe the deltas to the language spec in order to add these new features.

Предложения для языка C# версии 7.0C# 7.0 Language Proposals
В версии C# 7.0 реализован ряд новых возможностей,There are a number of new features implemented in C# 7.0. включая сопоставления шаблонов, локальные функции, объявления выходной переменной, выражения throw, двоичные литералы и разделители между цифрами.They include pattern matching, local functions, out variable declarations, throw expressions, binary literals, and digit separators. Эта папка содержит спецификации для каждой из этих функций.This folder contains the specifications for each of those features.

Предложения для языка C# версии 7.1C# 7.1 Language Proposals
В версию C# 7.1 добавлено несколько новых возможностей.There are new features added in C# 7.1. Можно написать метод Main, возвращающий Task или Task<int>.First, you can write a Main method that returns Task or Task<int>. Это позволяет добавлять модификатор async в метод Main.This enables you to add the async modifier to Main. Выражение default можно использовать без типа в тех расположениях, где возможен вывод типа.The default expression can be used without a type in locations where the type can be inferred. Кроме того, появилось еще одно дополнительное усовершенствование: вывод имен элементов кортежа.Also, tuple member names can be inferred. И, наконец, сопоставление шаблонов можно использовать с универсальными шаблонами.Finally, pattern matching can be used with generics.

Предложения для языка C# версии 7.2C# 7.2 Language Proposals
В версию C#7.2 добавлен ряд простых функций.C# 7.2 added a number of small features. С помощью ключевого слова in можно передавать аргументы по ссылке только для чтения.You can pass arguments by readonly reference using the in keyword. Внесен ряд незначительных изменений для поддержки безопасности во время компиляции для Span и связанных типов.There are a number of low-level changes to support compile-time safety for Span and related types. В некоторых ситуациях можно использовать именованные аргументы, если следующие за ними аргументы являются позиционными.You can use named arguments where later arguments are positional, in some situations. Модификатор доступа private protected позволяет указывать, что вызывающие объекты ограничены производными типами, реализованными в той же сборке.The private protected access modifier enables you to specify that callers are limited to derived types implemented in the same assembly. Оператор ?: можно использовать для разрешения в ссылку на переменную.The ?: operator can resolve to a reference to a variable. С помощью разделителя начальных цифр можно форматировать шестнадцатеричные и двоичные числа.You can also format hexadecimal and binary numbers using a leading digit separator.

Предложения для языка C# версии 7.3C# 7.3 Language Proposals
Версия C# 7.3 является очередным промежуточным выпуском, содержащим несколько небольших обновлений.C# 7.3 is another point release that includes several small updates. К параметрам универсальных типов можно применять новые ограничения.You can use new constraints on generic type parameters. Другие изменения упрощают работу с полями fixed, включая использование выделений stackalloc.Other changes make it easier to work with fixed fields, including using stackalloc allocations. Локальные переменные, объявленные с ключевым словом ref, можно переназначать для указания на новое хранилище.Local variables declared with the ref keyword may be reasssigned to refer to new storage. Можно применять атрибуты к автоматически реализуемым свойствам, предназначенным для созданного компилятором резервного поля.You can place attributes on auto-implemented properties that target the compiler-generated backing field. Переменные выражений можно использовать в инициализаторах.Expression variables can be used in initializers. Кортежи можно проверять на равенство (или неравенство).Tuples can be compared for equality (or inequality). Кроме того, были внесены некоторые улучшения в разрешение перегрузки.There have also been some improvements to overload resolution.

Предложения для языка C# версии 8.0 Язык C# версии 8.0 доступен в виде предварительной версии.C# 8.0 Language Proposals C# 8.0 is available in preview. Следующие предложения представляют собой текущие версии спецификаций для этих возможностей.The following proposals are the current versions of the specifications for those features. Одни из них имеют более законченный вид, а другие все еще находятся на этапе разработки.Some are more complete; some are still a work in progress. В число возможностей, которые были доступны в виде предварительных версий, входят использование ссылочных типов, допускающих значения NULL, рекурсивное сопоставление шаблонов, асинхронные потоки, диапазоны и индексы, использование шаблонов и объявлений using и назначение объединения со значением NULL.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.

Руководство по языку C#C# Guide
Портал для документации по Visual C#.Provides a portal to Visual C# documentation.

Использование среды разработки Visual Studio для C#Using the Visual Studio Development Environment for C#
Ссылки на концептуальные разделы и разделы задач, описывающие интегрированную среду разработки и редактор.Provides links to conceptual and task topics that describe the IDE and Editor.

Руководство по программированию на C#C# Programming Guide
Сведения об использовании языка программирования C#.Includes information about how to use the C# programming language.