TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #1881 1.79K
День 1538. #ЧтоНовенького
Новые Функции C#12. Окончание
В недавно выпущенном превью 3 .NET 8 добавили несколько интересных новых функций C#.
Начало. Первичные конструкторы

2. Директивы using для дополнительных типов
Добавлен ещё один вариант использования ключевого слова using. Теперь с помощью него можно объявить дополнительный тип:
using Measurement = (string, int);
using PathOfPoints = int[];
using DatabaseInt = int?;

Вы можете использовать псевдоним практически для любого типа. Можно создавать псевдонимы для обнуляемых типов-значений, однако нельзя использовать псевдонимы для обнуляемых ссылочных типов. Кортежи особенно интересны, потому что вы можете включать имена и типы элементов:
using Measurement = (string Units, int Distance);

Псевдонимы можно использовать так же, как любые типы:
public void F(Measurement x)
{ }

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

Вы можете оставить отзыв о псевдонимах на GitHub в обсуждении Preview Feedback: C# 12 Alias any type.

3. Значения по умолчанию для лямбда-выражений
Синтаксис такой же, как и для других параметров по умолчанию:
var addWithDefault = 
(int addTo = 2) => addTo + 1;
addWithDefault(); // 3
addWithDefault(5); // 6

Значение по умолчанию будет передано в метаданные и доступно через рефлексию как DefaultValue свойства ParameterInfo лямбда-метода:
addWithDefault.Method
.GetParameters()[0].DefaultValue; // 2

До C#12 нужно было использовать локальную функцию или громоздкое DefaultParameterValue из пространства имен System.Runtime.InteropServices, чтобы указать значение по умолчанию для параметров лямбда-выражения. Эти подходы по-прежнему работают, но их сложнее читать, и они несовместимы со значениями по умолчанию для методов. Теперь будет согласованный поиск значений параметров по умолчанию для методов, конструкторов и лямбда-выражений.

Вы можете оставить отзыв о значениях по умолчанию в лямбдах на GitHub в обсуждении Preview Feedback: C# 12 Default values in lambda expressions.

Чтобы попробовать эти новинки, загрузите последнюю превью версию Visual Studio 17.6 или превью 3 .NET 8.

Источник: https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview/
  • 👍 16
More from @netdeveloperdiary
  1. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  2. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
  3. Oct 9, 2026День 2809. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Окончание Начало 3.…
  4. Oct 8, 2026День 2808. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Начало В ИТ есть се…
  5. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  6. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →