Start Debugging

Тег: csharp-14

23 статей · Страница1из3

Как написать статический член расширения, применимый ко всем типам enum в C# 14
Объявите обобщённый блок extension с ограничением struct, Enum и получите Status.Values, Status.Count и Status.Parse для каждого enum в решении. Форма получателя, ловушки CS0704 и CS0428 и почему Enum.GetValues нужно кешировать.
Как заставить System.Text.Json игнорировать свойство с модификатором required
[JsonIgnore] на члене с required выбрасывает InvalidOperationException: marked required but does not specify a setter. Почему эти две возможности конфликтуют и четыре способа всё же проигнорировать свойство, измерено на .NET 10.
Решение: CS8618 "Non-nullable property must contain a non-null value when exiting constructor" в C#
CS8618 означает, что ссылочное поле или свойство, не допускающее null, не было инициализировано к моменту завершения конструктора. Присвойте его в конструкторе, задайте значение по умолчанию, пометьте required или сделайте допускающим null.
Как объявить свойства расширения в C# 14
Свойства расширения появляются в C# 14 через новый блок extension. Объявляйте свойства расширения только для чтения, с сеттером, статические и обобщённые, почему автосвойства отвергаются и как компилятор преобразует их в аксессоры get_/set_.
Исправление: ломающее изменение разрешения перегрузок в C# 14 со Span и ReadOnlySpan
После обновления до C# 14 / .NET 10 вызовы вроде array.Contains, x.Reverse() и MemoryMarshal.Cast внезапно привязываются к другим перегрузкам или перестают компилироваться. Вот что изменилось и как зафиксировать старое поведение там, где это важно.
Вперёд