Coroutines Корутины

Когда вы вызываете функцию, она должна полностью выполниться, прежде чем вернуть какое-то значение. Фактически, это означает, что любые действия, происходящие в функции, должны выполниться в течение одного кадра; вызовы функций не пригодны для, скажем, процедурной анимации или любой другой временной…

Читать далее

Игровой движок. Что собой представляет и какие проблемы решает?

Unity (unity в переводе с англ. — «единство», произносится как «ю́нити») — межплатформенная среда разработки компьютерных игр[2], разработанная американской компанией Unity Technologies. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие[3]. Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие. Основными преимуществами…

Читать далее

Тестирование юнит-тесты

До запуска приложения в производство, когда оно станет доступно пользователям, важно убедиться, что данное приложение функционирует, как и должно, что в нем нет ошибок. Для проверки приложения мы можем использовать различные схемы и механизмы тестирования. Одним из таких механизмов являются…

Читать далее

Как работает сборщик мусора? Что происходит с объектами которые имеют циклические зависимости?

Ранее в теме Типы значений и ссылочные типы мы рассматривали отдельные типы данных и как они располагаются в памяти. Так, при использовании переменных типов значений в методе, все значения этих переменных попадают в стек. После завершения работы метода стек очищается. При использовании…

Читать далее

LINQ. Extension syntax, query syntax

LINQ (Language-Integrated Query) представляет простой и удобный язык запросов к источнику данных. В качестве источника данных может выступать объект, реализующий интерфейс IEnumerable (например, стандартные коллекции, массивы), набор данных DataSet, документ XML. Но вне зависимости от типа источника LINQ позволяет применить ко…

Читать далее

Что такое рефлексия? Для решение каких задач приходилось использовать?

Рефлексия представляет собой процесс выявления типов во время выполнения приложения. Каждое приложение содержит набор используемых классов, интерфейсов, а также их методов, свойств и прочих кирпичиков, из которых складывается приложение. И рефлексия как раз и позволяет определить все эти составные элементы приложения.…

Читать далее

Что такое атрибут? Для каких целей используются атрибуты?

Атрибуты в .NET представляют специальные инструменты, которые позволяют встраивать в сборку дополнительные метаданные. Атрибуты могут применяться как ко всему типу (классу, интерфейсу и т.д.), так и к отдельным его частям (методу, свойству и т.д.). Основу атрибутов составляет класс System.Attribute, от которого…

Читать далее

Может ли структура реализовывать интерфейс?

Единственный класс или структура может реализовать любое количество интерфейсов. Из-за этого всегда существует вероятность реализации интерфейсов с членами, имеющими идентичные имена, и, следовательно, возникает необходимость в устранении конфликтов на уровне имен. При реализации члена интерфейса имеется возможность указать его имя…

Читать далее

Что такое замыкание?

Замыкание (closure) представляет объект функции, который запоминает свое лексическое окружение даже в том случае, когда она выполняется вне своей области видимости. Технически замыкание включает три компонента: внешняя функция, которая определяет некоторую область видимости и в которой определены некоторые переменные и параметры…

Читать далее

Что такое делегат? Ковариантность, контрвариантность

Делегаты представляют такие объекты, которые указывают на методы. То есть делегаты — это указатели на методы и с помощью делегатов мы можем вызвать данные методы. Определение делегатов Для объявления делегата используется ключевое слово delegate, после которого идет возвращаемый тип, название и…

Читать далее