C# (C Sharp) programming
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ
Показати більше📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming
Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 071 підписників, посідаючи 7 028 місце в категорії Технології та додатки та 36 096 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 071 підписників.
За останніми даними від 05 жовтня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -55, а за останні 24 години на 1, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 17.54%. Протягом перших 24 годин після публікації контент зазвичай збирає 8.84% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 3 170 переглядів. Протягом першої доби публікація в середньому набирає 1 597 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“По всем вопросам- @notxxx1
Реестр РКН: https://clck.ru/3Fk3kb
#VRHSZ”
Завдяки високій частоті оновлень (останні дані отримано 06 жовтня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
ArgumentException, если Precision совпадала со Scale.
• Пул соединений V2 мог выдавать соединения с истёкшими или почти истёкшими токенами доступа. Теперь срок проверяется перед повторным использованием. Исправление касается приложений, явно включивших V2.
• ClearPool и ClearAllPools могли приводить к ошибке при одновременном открытии соединения. Теперь уже начатые запросы могут завершиться, а соединения из очищенного пула больше не используются повторно.
https://github.com/dotnet/SqlClient/releases/tag/v7.1.1√(x² + y² + z²). После этого каждую координату делим на полученную длину.
На скриншотах хорошо видна разница в стиле:
- Rust: iter().fold() собирает сумму квадратов, iter_mut() меняет координаты.
- C#: ReadOnlySpan для чтения, Span для изменения и обычный foreach.
- C++: std::vector, цикл по значениям для расчёта и по ссылкам для изменения.
Для тех, кто пишет на C#: Rust fold(0.0, ...) по смыслу близок к LINQ Aggregate(0.0, ...): оба сворачивают последовательность в одно значение через аккумулятор.
Чей вариант вам понятнее с первого взгляда?
int[] numbers = { 1, 2, 3 }; // теперь на стеке
string[] words = { "Hello", "World!" }; // тоже на стеке
Делегаты. Если лямбда не выходит за пределы метода, объект Func больше не уходит в кучу. Замыкание пока ещё аллоцируется, но это обещают доделать.
Объекты в полях локальных структур. Если массив лежит в поле структуры, а структура не покидает метод, массив тоже размещается на стеке. В ассемблере пропадает вызов аллокатора.
Заодно в JIT добавили девиртуализацию интерфейсов массивов, поэтому foreach по IEnumerable<T> над массивом теперь инлайнится. Ещё улучшили loop inversion и раскладку кода, а на Arm64 пауз GC стало меньше на 8–20%.
Переписывать ничего не нужно: привычный код с лямбдами и маленькими массивами просто начинает аллоцировать меньше после перехода на .NET 10.
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/runtime#escape-analysisttfx портировал инструмент на C# и получил:
- до 140× быстрее Python
- до 2,12× быстрее Rust-версии 0.3.3, на которую ранее ссылался DHH
И всё это на Linux.
Современный C# здесь особенно интересен не только для backend: он отлично подходит для CLI, утилит, bash-подобных скриптов, сервисов и обычных приложений, при этом без заметной жертвы в производительности.
Хороший пример того, насколько далеко .NET ушёл от старого образа «Windows-only и тяжёлый runtime».
https://github.com/devmobasa/ttfxHello World, а как основа для полноценного приложения из нескольких сервисов.
https://aspire.dev/reference/samples/dbghelp.dll. Это способ встроить сбор диагностических данных прямо в приложение.
Полезно для тех, кто разбирается с трудноуловимыми сбоями и хочет видеть больше, чем сообщение об исключении.
https://devblogs.microsoft.com/dotnet/creating-a-memory-dump-in-csharp/
using System.Threading.Channels;
var queue = Channel.CreateBounded<int>(
new BoundedChannelOptions(1)
{
FullMode = BoundedChannelFullMode.Wait,
SingleReader = true
});
await queue.Writer.WriteAsync(1);
var worker = Task.Run(async () =>
{
await foreach (var job in queue.Reader.ReadAllAsync())
{
Console.WriteLine($"Start {job}");
if (job == 1)
{
await queue.Writer.WriteAsync(2);
await queue.Writer.WriteAsync(1); // retry
}
Console.WriteLine($"Done {job}");
}
});
await worker;
Вопросы:
1. Что появится в консоли?
2. На какой строке остановится обработка?
3. Почему await и свободные потоки пула не спасают?
4. Если увеличить вместимость канала до двух, проблема исчезнет?
5. Как организовать не больше трёх попыток на задачу, сохранив ограниченную очередь и одного обработчика?
Условие: нельзя использовать Task.Run для каждой повторной попытки, неограниченную очередь или отбрасывание сообщений.
👇 Найдите причину зависания и предложите исправление.Half. В SDK улучшили dotnet test, публикацию контейнеров и file-based programs, включая Native AOT reuse.
Также обновились F#, MAUI, WinForms, NuGet и MSBuild.
.NET 11 RC1 уже поддерживается в Visual Studio 2026 Insiders и VS Code с C# Dev Kit.
https://devblogs.microsoft.com/dotnet/dotnet-11-rc-1/
42|john@example.com|127
Нужно распарсить её без Split(), Regex и временных string:
public readonly record struct UserLog(
int Id,
ReadOnlyMemory<char> Email,
int Latency
);
Реализуйте:
static bool TryParse(
ReadOnlyMemory<char> input,
out UserLog result
)
Требования:
• парсинг через Span<char>
• false при битом формате
• без лишних аллокаций
• Email должен ссылаться на исходный buffer
Пример:
var input = "42|john@example.com|127".AsMemory();
if (TryParse(input, out var log))
{
Console.WriteLine(log.Id); // 42
Console.WriteLine(log.Email); // john@example.com
Console.WriteLine(log.Latency); // 127
}
Вопрос:
почему нельзя сохранить ReadOnlySpan<char> в UserLog, а ReadOnlyMemory<char> можно?