Авторский архив

Собственная очередь событий: EventQueue<T> (2009-6-22)

В ряде задач требуется, чтобы события вызывались строго последовательно, а не каскадно, как в классической реализации. Каскадность заключается в том, что, если в обработчике какого-либо события встретится вызов другого (или того же, не принципиально) события, то, собственно, обработка первого события прервется до завершения работы обработчика второго события. Это абсолютно нормальное и всех устраивающее поведение в […]

Параллельные вычисления: класс MultiThread (2009-6-19)

Современные персональные компьютеры стали многопроцессорными (и/или многоядерными), это — факт! Пока еще не вышел .NET Framework 4.0 и C# 4.0, в котором заявлена поддержка многопоточности, и поэтому программисты, как правило, никак не используют параллельность в своих вычислительных программах. Характерно, что активно вычисляющая программа грузит процессор лишь на 50% (на 2-ядерной машине) или на 25% (на […]

PathOperations: заимствовано из VB.NET (2009-6-18)

Не знаю почему, но часть функционала, который мог бы быть полезен и пишущим на C#, досталась только одному VB.NET. По крайней мере, статические методы, приведенные мной ниже и предназначенные для работы с файловыми путями, изначально располагались в пространстве имен Microsoft.VisualBasic, а именно — в классе Microsoft.VisualBasic.FileIO.FileSystem.

Бинарное дерево Tree<T> (2009-6-14)

Вашему вниманию предлагается класс, незаменимый при работе с древовидными данными. Класс реализует все потребности при работе с бинарными деревьями: добавление, хранение, удаление, энумерацию. Пока страдает описание, но, думаю, это я исправлю в ближайшее время, хотя, для сведущих, полагаю, не составит труда разобраться что к чему.

Работа с интервалами: Interval<T> (2009-6-13)

В ряде алгоритмов имеется необходимость реализации работы с различными интервалами (числовыми, строковыми, пользовательскими, любыми IComparable<T>). Для этих целей должен прекрасно подойти следующий универсальный шаблонный класс:

Типовые правила кодирования на C# (2009-6-13)

Начинающим project manager’ам, равно как и самостоятельным программистам, могут оказаться полезными приведенные (в довольно общем виде) правила кодирования на C#. На самом деле, список требований к исходному коду может составить и пару-тройку сотен пунктов, однако, для начала, попробуем ограничиться лишь небольшим набором обязательных правил (зачастую выстраданных неделями «тупежа» над кодом).

Методы Between<T> (2009-6-11)

Не секрет, что почти в каждой программе, оперирующей с числовой информацией, приходится производить проверку принадлежности различных значений допустимым интервалам. Зачастую, такие выражения в операторах сравнения имеют довольно громоздкий вид, например:

Класс Class<T1, T2, …> (2009-6-10)

Как описано в топике о структуре Pair<F, S>, зачастую требуется объединять объекты различных типов во временные структуры (или классы). Случай для двух объектов рассмотрен в предыдущем топике. Теперь рассмотрим случай большего количества объектов.

Структура Pair<F, S> (2009-6-10)

В ряде случаев бывает удобно использовать небольшие структуры, не содержащие методов. Однако не всегда хочется видеть у себя в коде множество одинаковых структур, предназначенных, к примеру, лишь для возвращаемых значений каких-либо методов.

Открытие блога! (2009-6-8)

Добро пожаловать в Usings.RU! Этот блог посвящен языку C# (главным образом — версии 3.0) и ориентирован на программистов, которые активно используют данный язык. Основная цель проекта: поделиться своим опытом и помочь Вам сэкономить время при решении ряда утилитарных задач. Дополнительно, хочется надеяться на то, что и я подчерпну для себя много полезного в ходе обмена […]