Чтение онлайн

на главную

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

• Поддержка необязательных параметров и именованных аргументов в методах.

• Поддержка динамического поиска членов во время выполнения через ключевое слово

dynamic
. Как будет показано в главе 19, это обеспечивает универсальный подход к вызову членов на лету независимо от инфраструктуры, в которой они реализованы (COM, IronRuby, IronPython или службы рефлексии .NET).

• Работа с обобщенными типами стала намного понятнее, учитывая возможность легкого отображения обобщенных данных на универсальные

коллекции
System.Object
через ковариантность и контравариантность.

В выпуске .NET 4.5 язык C# обрел пару новых ключевых слов (

async
и
await
), которые значительно упрощают многопоточное и асинхронное программирование. Если вы работали с предшествующими версиями С#, то можете вспомнить, что вызов методов через вторичные потоки требовал довольно большого объема малопонятного кода и применения разнообразных пространств имен .NET. Учитывая то, что теперь в C# поддерживаются языковые ключевые слова, которые автоматически устраняют эту сложность, процесс вызова методов асинхронным образом оказывается почти настолько же легким, как их вызов в синхронной манере. Данные темы детально раскрываются в главе 15.

Версия C# 6 появилась в составе .NET 4.6 и получила несколько мелких средств, которые помогают упростить кодовую базу. Ниже представлен краткий обзор ряда средств, введенных в C# 6.

• Встраиваемая инициализация для автоматических свойств, а также поддержка автоматических свойств, предназначенных только для чтения.

• Реализация однострочных методов с использованием лямбда-операции С#.

• Поддержка статического импортирования для предоставления прямого доступа к статическим членам внутри пространства имен.

null
– условная операция, которая помогает проверять параметры на предмет
null
в реализации метода.

• Новый синтаксис форматирования строк, называемый интерполяцией строк.

• Возможность фильтрации исключений с применением нового ключевого слова

when
.

• Использование

await
в блоках
catch
и
finally
.

• Выражения

nameof
для возвращения строкового представления символов.

• Инициализаторы индексов.

• Улучшенное распознавание перегруженных версий.

В версии C# 7, выпущенной вместе с .NET 4.7 в марте 2017 года, были введены дополнительные средства для упрощения кодовой базы и добавлено несколько более значительных средств (вроде кортежей и ссылочных локальных переменных, а также возвращаемых ссылочных значений), которые разработчики просили включить довольно долгое время. Вот краткий обзор новых средств C# 7.

• Объявление переменных

out
как встраиваемых аргументов.

Локальные функции.

• Дополнительные члены, сжатые до выражений.

• Обобщенные асинхронные возвращаемые типы.

• Новые маркеры для улучшения читабельности числовых констант.

• Легковесные неименованные типы (называемые кортежами), которые содержат множество полей.

• Обновления логического потока с применением сопоставления с типом вдобавок к проверке значений (сопоставлению с образцом).

• Возвращение ссылки на значение вместо только самого значения (ссылочные локальные переменные и возвращаемые ссылочные значения).

• Введение легковесных одноразовых переменных (называется отбрасыванием).

• Выражения

throw
, позволяющие размещать конструкцию
throw
в большем числе мест — в условных выражениях, лямбда-выражениях и др.

С версией C# 7 связаны два младших выпуска, которые добавили следующие средства.

• Возможность иметь асинхронный метод

Main
программы.

• Новый литерал

default
, который делает возможной инициализацию любого типа.

• Устранение проблемы при сопоставлении с образцом, которая препятствовала использованию обобщений в этом новом средстве сопоставления с образцом.

• Подобно анонимным методам имена кортежей могут выводиться из проекции, которая их создает.

• Приемы для написания безопасного и эффективного кода, сочетание синтаксических улучшений, которые позволяют работать с типами значений, применяя ссылочную семантику.

• За именованными аргументами могут следовать позиционные аргументы.

• Числовые литералы теперь могут иметь ведущие символы подчеркивания перед любыми печатаемыми цифрами.

Модификатор доступа

private protected
делает возможным доступ для производных классов в той же самой сборке.

• Результатом условного выражения (

?:
) теперь может быть ссылка.

Кроме того, в этом издании книги к заголовкам разделов добавляются указания "(нововведение в версии 7.x)" и "(обновление в версии 7.x)", чтобы облегчить поиск изменений в языке по сравнению с предыдущей версией. Буква "х" означает младшую версию C# 7, такую как 7.1.

В версии C# 8, ставшей доступной 23 сентября 2019 года в рамках .NET Core 3.0, были введены дополнительные средства для упрощения кодовой базы и добавлен ряд более значимых средств (вроде кортежей, а также ссылочных локальных переменных и возвращаемых значений), которые разработчики просили включить в спецификацию языка в течение довольно долгого времени.

Версия C# 8 имеет два младших выпуска, которые добавили следующие средства:

• члены, допускающие только чтение, для структур:

Поделиться:
Популярные книги

Удиви меня

Юнина Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Удиви меня

Live-rpg. эволюция-5

Кронос Александр
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Live-rpg. эволюция-5

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Сиротка

Первухин Андрей Евгеньевич
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Сиротка

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Последний Паладин. Том 5

Саваровский Роман
5. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 5

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Изгой. Трилогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
8.45
рейтинг книги
Изгой. Трилогия

Великий род

Сай Ярослав
3. Медорфенов
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великий род

Лорд Системы 12

Токсик Саша
12. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 12

Наемный корпус

Вайс Александр
5. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Наемный корпус

Чехов. Книга 3

Гоблин (MeXXanik)
3. Адвокат Чехов
Фантастика:
альтернативная история
5.00
рейтинг книги
Чехов. Книга 3

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Измена. Верну тебя, жена

Дали Мила
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верну тебя, жена