Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 9

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 3 4 5 6 7 8 < 9 > 10 11 12 13 14 15 .. 404 >> Следующая


Сборка мусора

Одной нз наиболее важных особенностей управляемого кода является понятие “сборка мусора". Это способ, применяемый в .NET и гарантирующий полное освобождение памяти, использовавшейся приложением, по завершении работы этого приложения. До появления .NET эта задача возлагалась на программистов, и наличие в программе пары простых ошибок могло привести к ситуации, когда огромные блоки памяти таинственным образом исчезали. Обычно это приводило к постепенному замедлению работы компьютера с последующим крахом системы,
Знакомство с С tf

5

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

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

Последовательность действий

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

Код hi СМ

I. Код приложения записывается на языке программирования, совместимом с .NET, например на C# {см. рис. справа).

2. Полученная программа компилируется на язык MSIL и помещается в модуль (см. рис. слева).

3. Прежде чем этот код начнет выполняться (сам по себе, если он является выполняемым,

или при вызове из другой программы), он должен быть откомпилирован в родной код с помощью JIT-компилятора (см. рис. справа).

Систаыа выполнения прогреми

.NET CLR
Родной код > Родной КОД 1 1 Родной КОД 1
: : I 1 : j. ! „J
J
—^

К / ч
Модуль III 1 Жчсоыпиляция у Родной КОД

4. Родной код выполняется в контексте управляемого CLR совместно с другими приложениями или процессами (см. рис, слева).

Связывание

Существует еще одни момент, который необходимо учитывать в вышеприведенном процессе. Код на С#, который компилируется иа MSIL на шаге 2, совсем не обязательно должен находиться в одном файле. Имеется возможность разнести код приложения по нескольким исходным файлам, которые затем будут скомпилированы в единый модуль. Этот процесс известен под названием “связывание" и является чрезвычайно полезным. Причина такого положения дел заключается в том, что работать с несколькими не очень большими файлами намного легче, чем с одним огромным. Можно выделить логически связанный код в отдельный файл, работа иад которым будет вестись совершенно независимо и о котором можно забыть после того, как произойдет компиляция. Такой подход существенно упрощает выявление конкретных сегментов кода, когда они оказываются нужными, а заодно позволяет командам разработчиков разделить бремя программирования на отдельные куски, которые затем можно выверять без риска повредить правильно работающие сегменты и те части кода, иад которыми трудятся другие программисты.
Как отмечалось выше, C# — один нз языков программирования, который может использоваться для создания приложений, выполняемых в среде .NET CLR. Этот язык — результат эволюции языков С и C++, созданный компание й Microsoft специально для использования на платформе .NET, Являясь новейшей разработкой, C# конструировался очень тщательно, с учетом наилучших возможностей других языков, предназначенных для решения специфических проблем,

Создавать приложения на C# легче, чем на C++, поскольку синтаксис языка C# более простой, чем синтаксис C++. Тем не менее C# является мощным языком программирования, и имеется мало вещей, которые можно сослать на C++ и нельзя на С#. Однако необходимо помнить, что возможности С#, соответствующие наиболее продвинутым возможностям C++ (например непосредственный доступ и внесение изменений в системную память), могут быть осуществлены только с помощью кода, помеченного как unsafe (небезопасный). Эти продвинутые способы программирования, как следует уже из нх названия, представляют потенциальную опасность, поскольку они позволяют записывать информацию в критические системные участки памяти с потенциально катастрофическими результатами. Именно по этой причине, а также нз некоторых других соображений мы не будем рассматривать данную тему в этой книге,

Иногда код на C# оказывается более объемным, чем на C++. Это следствие того, что в C# (в отличне от C+ + ) осуществляется контроль безопасности использования типов. С точки зрения непрофессионала это означает, что если некоторые данные отнесены к определенному типу, то впоследствии они не могут самостоятельно преобразовываться в другие типы. Поэтому, существуют строгие правила, которым необходимо следовать при выполнении преобразования нз одного типа в другой. Это часто приводит к необходимости писать на C# больший объем кода, чем на C++. Однако взамен мы получаем то преимущество, что программа становится более надежной и ее отладка упрощается, поскольку .NET постоянно следит за тем, к какому типу относится данная переменная в каждый конкретный момент времени, К примеру, в C# мы не можем дать задание: "Возьми 4 банта памяти из этих данных и 10 байтов нз других данных и рассматривай эту область памяти как X”, но это не обязательно является недостатком.
Предыдущая << 1 .. 3 4 5 6 7 8 < 9 > 10 11 12 13 14 15 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.