Приветствую всех, сегодня поговорим о Серелизации объектов. Тема довольна сложная, но применяется практически в каждом большом проекте, особенно в игростроении. Постараюсь объяснить ключевые вопросы и рассмотрим примеры. Создавая объекты в приложении .NET Framework, вы, возможно, никогда не задумывались о том, как данные хранятся в памяти. Но когда требуется сохранять содержимое объекта в файле, передавать объект […]
Атрибуты в C#
Существует два типа атрибутов: Предопределенные атрибуты (идут в поставке FCL), и пользовательские атрибуты, создаваемые пользователем для добавления в код дополнительных сведений. С точки зрения разработчика оба типа имеют одинаковый синтаксис. Пользовательский атрибут представляет собой обычный класс, унаследованный от класса Attribute. Такой атрибут может быть использован для любого метода, свойства, класса или сборки при использовании следующего […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Сжатие» В этом задании вам нужно написать стрим, осуществляющий сжатие и восстановление информации. Бороться за высокое качество сжатия не обязательно: стрим будет тестироваться на байтовых последовательностях, состоящих из 2-4-кратных повторений одного и того же байта. Как и в предыдущем […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Дифференцирование» C# — очень гибкий язык, на котором можно делать удивительные вещи. Например, на нем вполне можно написать систему компьютерной алгебры. В частности, в этом задании вы, используя LINQ Expressions, реализуете символьное (не численное) дифференцирование функции. Проект Reflection.Differentiation using […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика«Обходы деревьев» Часто делегаты можно использовать для тонкой настройки алгоритмов, что позволит использовать один и тот же код для решения несколько разных задач. Скачайте проект проекте Delegates.TreeTraversal Перед вами три задачи: Дано дерево категорий продуктов, в каждой категории могут быть […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Наблюдатель» Делегаты и их производные (такие, как события) можно использовать для замены классического объектно-ориентированного шаблона Наблюдатель. Этот шаблон реализован в проекте Delegates.Observers в файле ObservableStack.cs в классическом виде, так как он описан в книжках. Видно, как много инфраструктурного кода […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика«Генератор отчетов» Некто N разработал генератор отчетов в проекте Delegates.Reports, который считает простую статистику о погоде по нескольким параметрам за несколько дней. Его генератор расширяем, и он написал два отчета с его помощью: отчет в HTML, считающий среднее и стандартное […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Роботы» Не так-то просто сделать упражнение на ковариацию и контравариацию, но нам удалось. Скачайте проект Generics.Robots и изучите класс Architecture.cs. Он описывает некий проект архитектуры робота. В нем есть AI, вырабатывающий команды, и Device, команды исполняющий. При этом, AI […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика «Таблицы» В анализе данных бывают очень полезны таблицы. Например, строки могут соответствовать датам, столбцы — департаментам, а в ячейках может хранится выручка департамента за контракты на соответствующую дату. Сделайте такую таблицу, которая бы: Индексировалась величинами типов, указанных при создании […]
Решения задачи с Ulearn
Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть! Практика«Бинарное дерево» Наиболее очевидный случай использования дженериков — создание коллекций. Скачайте проект Generics.BinaryTrees и создайте в нем класс бинарного дерева поиска так, чтобы он проходил приложенные тесты. Если у вас останется много времени, оптимизируйте код метода GetEnumerable так, чтобы он […]
