🤔 Как можно аннотировать основной конструктор атрибутом?
Ранее, если у записи/класса/структуры было несколько конструкторов, возникала проблема с десериализацией, так как необходимо было указать атрибут
Начиная с C# 12, можно использовать method attribute target для указания конструктора☝️
#dotnet #csharp #tip by Oleg Kyrylchuk
Ранее, если у записи/класса/структуры было несколько конструкторов, возникала проблема с десериализацией, так как необходимо было указать атрибут
JsonConstructor
в основном конструкторе.Начиная с C# 12, можно использовать method attribute target для указания конструктора☝️
#dotnet #csharp #tip by Oleg Kyrylchuk
👍10🥰2
💡 Parameter Object Pattern
Если метод принимает много связанных параметров, рассмотрите возможность группировки их в объект, чтобы упростить модификацию и сигнатуры.
Очень полезно, когда группа параметров часто используется повторно.
#dotnet #csharp #tip by Dave Callan
Если метод принимает много связанных параметров, рассмотрите возможность группировки их в объект, чтобы упростить модификацию и сигнатуры.
Очень полезно, когда группа параметров часто используется повторно.
#dotnet #csharp #tip by Dave Callan
😁23👍12🥱8👾3
🤔 Согласитесь, что глубоко вложенный код трудно читать?
В методах с большим количеством вложений можно использовать подход Early Return и Guard Clause, чтобы сделать код более удобным для чтения.
#dotnet #csharp #tip by Dave Callan
В методах с большим количеством вложений можно использовать подход Early Return и Guard Clause, чтобы сделать код более удобным для чтения.
#dotnet #csharp #tip by Dave Callan
👍44🥱35💯7🌚2
🚀 Сравнение производительности конкатенации строк в .NET 9
Есть и другие подходы, когда нам нужна ещё более высокая производительность, но из распространённых подходов, показанных ниже,
#dotnet #csharp #tip by Dave Callan
Есть и другие подходы, когда нам нужна ещё более высокая производительность, но из распространённых подходов, показанных ниже,
StringJoin
выигрывает. #dotnet #csharp #tip by Dave Callan
👍25👏3👾2