Библиотека шарписта | C#, F#, .NET, ASP.NET
23.3K subscribers
2.11K photos
32 videos
85 files
4.28K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
📌 Access Modifiers: сводная таблица для C#-разработчика

👉 Гайд на MS Learn

#csharp #tip
💡В .NET 6 представлен новый метод Enumerable TryGetNonEnumeratedCount

Он опредяет количество элементов в последовательности без необходимости принудительной итерации по ней.

Особенно полезно для IQueryable, когда при вызове метода Count вы не хотите выполнять полный запрос.

#csharp #dotnet #tip by Oleg Kyrylchuk
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Атрибут [MemberNotNullWhen] помогает компилятору указать, при каких условиях указанное поле или свойство не имеет значения NULL, что улучшает статический анализ кода.

#csharp #tip by Łukasz Żabski
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Егор Богатов советует поэкспериментировать с атрибутом NoOptimization для повышения производительности 🤷‍♂️

👉 Подробнее

#dotnet #csharp #perfomance #tip
💡 Визуализация основных методов List в C#

#csharp #tip by Jalal Alzebda
💡 Использование Find вместо FirstOrDefault с коллекциями

Как FirstOrDefault, так и Find используются для поиска первого элемента в коллекции, удовлетворяющего определенному условию.

🚀 Find: потенциально может быть быстрее для коллекций в памяти (например, List<T>), поскольку потенциально может использовать прямое индексирование для поиска элемента.

💡 Это относится к следующим типам коллекций: List, Array, ImmutableList.

#tip #csharp #dotnet by Jalal Alzebda
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 UUID v7 в .NET 9

.NET изначально поддерживает UUID v4 через Guid.NewGuid(). Но начиная с предварительной версии 7, появилась поддержка UUID версии 7.

📌 UUID v7

Так как GUID является альтернативным названием для UUID, новый API находится в пространстве имен System.Guid:

var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);


Основным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.

Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.

📌 Контроль метки времени

Поскольку метод ожидает DateTimeOffset, вызывающая функция может использовать TimeProvider для контроля UtcNow:

var uuid = Guid.CreateVersion7(timeProvider.GetUtcNow());


timeProvider
может быть получен через DI контейнер и подделан в тестовых сценариях.

#csharp #dotnet #tip by
Steven Giesel
💡Использование JsonSchemaExporter для экспорта схемы JSON в .NET 9: на заметку C#-разработчику

#dotnet #csharp
💡 Начиная с C# 7 мы можем использовать символ _ для улучшения читаемости числовых литералов. Это особенно полезно для больших чисел и предназначено только для читаемости.

#dotnet #csharp #tip by Dave Callan
💡C#-разработчики, знаете ли вы, что при регистрации исключений можно удалить полные пути к файлам? Выше представлено два рабочих кейса.

#csharp #dotnet #tip by Karen Payne
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM