Меняем значение двух переменных логического типа (boolean) без использования третьей

Когда-то давно мы уже рассматривали данную задачу применительно к целочисленным переменным. Но как быть с переменными логического типа (boolean)?

Паттерн «Декоратор» (с примерами на C#, Java и PHP)

Паттерн «Декоратор» (Decorator) предназначен для добавления объекту нового функционала без порождения производных классов. «Декоратор» имеет то же альтернативное англоязычное название, что и «Адаптер» — «Wrapper» (Обёртка). Но, между этими паттернами есть принципиальное отличие.

Методы расширения в C# (на примере string)

В C# не всегда можно расширить функционал класса путём наследования, т.к. существуют так называемые sealed классы, для которых оно запрещено. Также не всегда есть возможность доработать класс «под себя», т.к. нет доступа к исходному коду. Поэтому, если такой класс всё-таки нуждается в изменении программист вынужден использовать «обходные пути» в виде

Создание служб Windows с помощью C#

Служба Windows – это специальная служебная программа, которая запускается операционной системой автоматически при загрузке вне зависимости от статуса пользователя или вручную (в зависимости от настроек). Службы работают в фоновом режиме и, как правило, выполняют различные технологические задачи.

Обмен данными по сети в C# (протокол TCP)

В наше время взаимодействие приложений по сети уже давно стало обычным делом. Чаще всего для такого взаимодействия на транспортном уровне используется протокол TCP, так как он обеспечивает доставку передаваемого сообщения получателю. В .NET за работу с TCP отвечают три класса из пространства имён System.Net.Sockets.

Паттерн «Наблюдатель». Описание и примеры на C# и Java

Паттерн «Наблюдатель» (Observer) — определяет отношение «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него объекты получают уведомление об этом и также обновляют своё состояние [1].

Паттерн «Посетитель». Описание и примеры на C# и Java

Паттерн «Посетитель» (Visitor) описывает операцию, выполняемую над каждым объектом из некоторой структуры, без изменения классов этих объектов [1]. Это позволяет добавлять новый функционал без доработки уже имеющихся классов приложения.

Обмен данными сложной структуры с использованием ASP.NET Web API

Предпосылкой для написания этой статьи стал комментарий к статье «Использование AJAX в ASP.NET MVC», который был оставлен 26 февраля 2018 года одним из гостей сайта. В комментарии говорилось, что в статье не хватает примера обмена данными сложной структуры. С одной стороны обмен такими данными в принципе ничем не отличается от

XML сериализация и десериализация произвольных объектов в C#

Работу с XML в C# условно можно разделить на четыре части, в зависимости от решаемых задач. Стандартный разбор (парсинг) и формирование XML при помощи DOM, Xpath и т. п.; Сериализация и десериализация объектов, имеющих для этого штатные средства (например, DataTable); Сериализация и десериализация произвольных объектов, не относящихся к предыдущей части; Валидация