Следващата версия C# ще предложи нови възможности, вариращи от записи до равенства, основани на стойността. C# 8.0 излезе миналия септември, a Microsoft се забави с разработката на C# 9.0. Новата версия трябва да бъде част от платформата за разработка на .NET 5, която трябва да излезе през ноември. Новите функции на C# 9.0 представи по време на Microsoft Build водещият разработчик на C# Мадс Торгенсен. Те включват следното:
- Записи за обявяване на цял обект за неизменим и той да се държи като стойност. Записите са предназначени да се виждат повече като данни и по-малко като обекти.
with
изрази, които използват синтаксиса на инициализатора на обекти, за да покажат какво е различно в нов обект в сравнение със стар.- Подобрен pattern matching.
- Всички обекти наследяват виртуален метод
Equals(object)
от обектния клас. Това служи за основа на статичния методObject.Equals(object, object)
, когато и двата параметъра са non-null. Структурите отменят това, за да имат „основано на стойността равенство“, което позволява да се правят сравнения на всяко поле от структурата, като се извикват по тях рекурсивен начин. - Позиционни записи, осигуряващи подход към записи, където съдържанието се дава чрез конструкторски аргументи и може да бъде извлечено с позиционна деконструкция.
- Програми от най-високо ниво, за да се отговори на проблема с твърде много boilerplate код.