Расширяем string своим методом — ToSlug. Сейчас научимся добавлять собственные методы к стандартным типам в C#, не изменяя их код и не создавая подклассов. Подключим стандартную библиотеку: using System; Допустим, у нас есть строка с названием статьи, и мы хотим превратить её в "slug" — пригодную для URL или имён файлов. У стандартного string такого метода нет, но мы можем добавить его сами через метод-расширение. Создаём статический класс и описываем метод, указав this перед первым параметром: ...
C# Ready | Unity
Авторский канал по разработке на C# и Unity. Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_it РКН: https://clck.ru/3SBaT3 Реклама на бирже: https://telega.in/c/csharp_ready
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
13 из 13Почему CancellationToken бесполезен, если не передать его дальше? Многие принимают CancellationToken в методе, но потом просто не используют его в реальной async-операции. В итоге создаётся ощущение, что отмена у нас поддерживается, хотя на практике запрос в базу или внешний сервис всё равно продолжает выполняться. То есть клиент уже закрыл страницу или отменил запрос, а сервер всё ещё тратит ресурсы на работу, результат которой уже никому не нужен. public async Task<List<Order>> GetOrders(Cance...
👩💻 Массовое переименование файлов в папке! Сделаем консольную утилиту на C#, которая за один запуск переименует все файлы в каталоге в выбранном режиме. В этой задаче: • Поддержка префикса, суффикса, смены расширения и нумерации файлов. • Обрабатываем аргументы, фильтруем и сортируем список файлов в папке. • Генерируем имена, переименовываем файлы, выводим прогресс и ошибки. Полезно, когда нужно быстро навести порядок в фотоархивах, экспортированных отчётах, логах или бэкапах. ➡️ C# Ready | #...
😍 Отличная статья — про то, как сделать свою первую 3D-игру на MonoGame! В этой статье: • Поймёшь, как устроена базовая сцена в 3D и с чего начать проект на MonoGame; • Разберёшься, как добавить камеру, управление и отрисовку объектов в пространстве; • Посмотришь, как шаг за шагом собрать простой игровой прототип и увидеть результат вживую. 🔊 Продолжай читать на Habr! ➡️ C# Ready | #статья
👩💻 string vs StringBuilder без лишней магии! В этой шпаргалке — наглядно и по делу: когда обычная строка подходит идеально, а когда она начинает незаметно создавать кучу лишних объектов и тормозить код. ➡️ C# Ready | #шпора
Почему опасно перечислять IEnumerable несколько раз? Когда мы работаем с IEnumerable, легко забыть, что это не всегда готовая коллекция. Иногда это просто последовательность, которая будет выполняться заново каждый раз, когда мы к ней обращаемся. Из-за этого код может выглядеть безобидно, но делать больше работы, чем кажется на первый взгляд. var users = GetUsers() .Where(x => x.IsActive); if (users.Any()) { Console.WriteLine(users.Count()); } Здесь последовательность может быть пройдена дважды:...
✍️ Build Your Own X — освойте программирование, воссоздав любимые технологии с нуля! Это огромная коллекция пошаговых гайдов, где учатся программированию через практику. Проекты реализованы на разных языках, в том числе на C# и C++. Здесь можно попробовать написать собственную базу данных, Git-клиент, веб-сервер, блокчейн, игровой движок, браузер или даже язык программирования. Оставляю ссылочку: GitHub 📱 ➡️ C# Ready | #репозиторий
☕️ Fruntend — подборка лучших ресурсов для изучения языков! Это сайт, где собраны ресурсы для изучения разных языков программирования, включая отдельные подборки по C++ и C#. Позволяет быстро найти платформы, курсы и учебные материалы. По C++ и C#: курсы, видео, полноценные учебные порталы, туториалы и гайды. Можно выбрать подходящий ресурс и начать обучение без долгого поиска. 📌 Оставляю ссылочку: fruntend.com ➡️ C# Ready | #сайт
Фильтруем списки эффективно с ToHashSet! Сейчас научимся быстро отбирать элементы одного списка, проверяя, есть ли они в другом. Это избавит от лишних проходов и ускорит работу кода. Подключим нужные библиотеки — всё уже есть в стандартной библиотеке: using System; using System.Collections.Generic; using System.Linq; Допустим, мы хотим оставить только избранные фрукты. Без оптимизации код выглядит так: List<string> fruits = new() { "apple", "banana", "mango", "orange" }; string[] favorite = { "b...