Ката программирования на C# — "FizzBuzz"

Следующая ката, пожалуй, самая простая. Для её реализации понадобится всего несколько минут. Это будет всем известный «FizzBuzz». Суть задания заключается в том, что необходимо вывести числа от 1 до 100, при этом, если число делится на 3, выводить «Fizz», если делится на 5, выводить «Buzz», а если делится и на 3 и на 5, то вывести «FizzBuzz». Во всех остальных случаях выводить само число. [Ещё]

Ката программирования на C# — "Крестики-нолики"

Вот очередная ката программирования, на языке C#. В этот раз, в необычном для меня формате. Я решил записать видео самого процесса создания, исходный код, как всегда, можно увидеть на GitHub. Видео получилось длиной почти 23 минуты, кому интересно, читайте дальше… [Ещё]

Ката программирования на C# — "Палиндром"

Сегодня рассмотрим первую ката «Палиндром». Напомню, что ката в программировании, это упражнение, которое должно занимать не более 10 минут, которое выполняется снова и снова, для совершенствования скорости и качества написания кода. Определение, является ли слово палиндром в качестве первого ката выбрано по 2 причинам, во-первых, задача поиска палиндрома достаточно проста и её написание займет точно не более 10 минут, во-вторых она не столь тривиальна, как кажется на первый взгляд и в сети очень легко найти примеры достаточно сложных палиндромов для тестов. [Ещё]

Использование расширений для обхода неинициализированных классов

Всем привет. Решил написать об одной интересной вещи, о которой я узнал на конференции DevCon в докладе Дмитрия Нестерука «Несколько трюков в C#», а именно использование расширений для обхода неинициализированных классов. Если у вас есть свободное время, обязательно посмотрите сам доклад, там затронуто еще несколько очень интересных вещей… [Ещё]

Класс Path в C# — работа с путями и именами файлов

Работая с директориями и файлами, приходится выполнять такие операции как составление пути к файлу, получение расширения файла, получение абсолютного пути к файлу и много других операций. В C# для этих и подобных операций существует класс System.IO.Path… [Ещё]

Запрет использования устаревших методов в C# — атрибут Obsolete

Когда работаешь над проектом продолжительное время, порой возникает необходимость запрета использования одних методов/классов и замене их другими. Данный переход должен быть максимально безболезненным для разработчиков и всё необходимое для этого в C# уже есть… [Ещё]

Использование NumberStyles — анализ чисел в C#

Наверняка всем неоднократно приходилось выделять числа из строк. Это довольно простая задача, если в строке записано только число, без разделителей, без указания валюты (в случае вывода стоимости), не используя экспоненциальное представление. Но порой это не так… [Ещё]

Использование UnicodeCategory в C#

Сегодня я бы хотел рассказать о категориях Unicode-символов в C#. Наверняка все использовали такие функции как char.IsLower(c), char.IsDigit(c) и подобные. Это определённо лучший способ получить информацию о символе, но мы можем получить гораздо больше информации о Unicode символах, если воспользуемся функцией char.GetUnicodeCategory(c)… [Ещё]

Использование атрибута DebuggerDisplay в C# — настройка отображаемой в отладчике информации

Отладка кода на крупных проектах занимает огромное количество времени. На дебагинг, обычно, тратится от 10 до 15 процентов времени работы над проектом, и даже если вы пишете чистый и качественный код, все равно вы будете использовать отладчик… [Ещё]