User
Это киллер фича, которая обязывает инициализировать указанные свойства в DTO.
Казалось бы есть конструктор для этого, но систаксис с инициализатором свойств намного удобнее. Это ещё один шаг в борьбе с NullReferreceException.
https://github.com/dotnet/csharplang/blob/main/proposals/required-members.md
https://github.com/dotnet/csharplang/issues/3630
И в догонку Simplified parameters null validation. Которое гарантирует null-безапасность и пишет бойлерплейт за вас.
// Before void Insert(string s) { if (s is null) throw new ArgumentNullException(nameof(s)); ... } // After void Insert(string s!) { ... }
https://github.com/dotnet/csharplang/issues/2145
Required properties не добавили, расходимся.
Идея и реализация замечательная. Однако не работает на Android Firefox с тачем. Наверняка нужно подписать на какие-то touch-события вдобавок к событиям мыши.
Я рекомендую ShareX
Это киллер фича, которая обязывает инициализировать указанные свойства в DTO.
Казалось бы есть конструктор для этого, но систаксис с инициализатором свойств намного удобнее. Это ещё один шаг в борьбе с NullReferreceException.
https://github.com/dotnet/csharplang/blob/main/proposals/required-members.md
https://github.com/dotnet/csharplang/issues/3630
И в догонку Simplified parameters null validation. Которое гарантирует null-безапасность и пишет бойлерплейт за вас.
https://github.com/dotnet/csharplang/issues/2145
Required properties не добавили, расходимся.
Идея и реализация замечательная. Однако не работает на Android Firefox с тачем. Наверняка нужно подписать на какие-то touch-события вдобавок к событиям мыши.
Я рекомендую ShareX