Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфа.doc
Скачиваний:
12
Добавлен:
04.06.2015
Размер:
766.98 Кб
Скачать

Компилятор jit

Еще одним преимуществом технологии, предоставляемой в рамках платформы Micro-

Microsoft .NET Framework, перед традиционными технологиями программного обеспечения

является наличие так называемых сборок. Сборка представляет собой один или не-

несколько файлов, содержащих все необходимое не только для работы приложения,

но и для ее самодокументирования.

Упрощение отладки программ С#

Известно, что на отладку сложной программы можно потратить намного больше вре-

времени и сил, чем на ее разработку и написание. Объем отладочного кода, создаваемого

специально для тестирования модулей программы, может многократно превышать

объем кода самих отлаживаемых модулей.

Исполнимый код, получающийся в результате трансляции исходного текста про-

программы, написанной на таких языках программирования, как C++ и Pascal, имеет

практически полный доступ к ресурсам своего процесса. Такие ошибки, как чтение

неинициализированных переменных, неправильное преобразование типов указателей

или их неправильная инициализация, забывчивость при освобождении динамически

полученных блоков памяти, ошибки при выполнении числовых операций, могут при-

привести к аварийному завершению программы или к другим плачевным результатам.

Многие ошибки обычно остаются незамеченными на этапе компиляции и сказыва-

сказываются только при работе программы, причем, как это обычно бывает, в самый неподхо-

неподходящий момент.

Компилятор языка С# исключает возникновение перечисленных выше и многих

других ошибок еще на этапе компиляции, что существенно облегчает и ускоряет про-

процесс отладки сложных программ. Необходимые для этого средства встроены непо-

непосредственно в язык С#.

Среди других средств, встроенных в язык С# и упрощающих отладку программ,

следует упомянуть объектно-ориентированную обработку исключений и систему

сборки мусора.

1. Легкость развертывания приложений в глобальной среде

Интернет

2. Экономичная разработка программного обеспечения

3. «Бесшовная», гибкая интеграция программных продуктов

и аппаратных ресурсов

4. Предоставление программного обеспечения как сервиса

5. Новый уровень безопасности и удобства использования

Компонентный подход как развитие объектно-

ориентированной модели

2. Универсальная система типизации: «всякая сущность

есть объект»; унификация данных и метаданных

3. Строго иерархическая организация кода, пространств

имен и классов

4. Универсальный интерфейс .NET Framework (включая

поддержку различных подходов к программированию)

5. Высокая вариативность экземпляров реализации (в

частности, на основе веб-сервисов)

Многоязыковая поддержка (десятки языков

программирования)

15. Массивы в языке С#. Объявление и применение массивов в языке С#, обращение к элементам массива.

Массив — это структура данных, содержащая несколько переменных одного типа. Массивы объявляются со следующим типом.

type[] arrayName;

// Declare a single-dimensional array

int[] array1 = new int[5];

// Declare and set array element values

int[] array2 = new int[] { 1, 3, 5, 7, 9 };

// Alternative syntax

int[] array3 = { 1, 2, 3, 4, 5, 6 };

// Declare a two dimensional array

int[,] multiDimensionalArray1 = new int[2, 3];

// Declare and set array element values

int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

// Declare a jagged array

int[][] jaggedArray = new int[6][];

// Set the values of the first array in the jagged array structure

jaggedArray[0] = new int[4] { 1, 2, 3, 4 };

int[][] jaggedArray = new int[2][];

jaggedArray[0] = new int[4];

jaggedArray[1] = new int[3];

В платформе .NET Framework массивы реализуются как экземпляры класса Array. Этот класс обеспечивает несколько ценных методов, например Sort иReverse.

Типы массива являются ссылочными типами, производными от абстрактного базового типа Array. Поскольку этот тип реализует IEnumerable иIEnumerableHYPERLINK "http://msdn.microsoft.com/ru-ru/library/9eekhta0(v=VS.90).aspx"<HYPERLINK "http://msdn.microsoft.com/ru-ru/library/9eekhta0(v=VS.90).aspx"THYPERLINK "http://msdn.microsoft.com/ru-ru/library/9eekhta0(v=VS.90).aspx">, в C# во всех массивах можно использовать итерацию foreach.

Невыровненный массив является массивом массивов, и поэтому его элементы являются ссылочными типами и инициализируются значением null.

int[][] jaggedArray3 =

{

new int[] {1,3,5,7,9},

new int[] {0,2,4,6},

new int[] {11,22}

};

  1. Обработка исключений на платформе Microsoft .NET. Практическое применение.

Для работы с исключениями код должен быть организован особым образом. Часть кода, в которой может быть выработано исключение, заключается в блок try, а код, обрабатывающий исключение - в блок catch. Исключения могут вырабатываться самой CLR (например при попытке деления на 0) либо пользовательским методом, для чего служит ключевое слово throw после которого указывается объект-исключение, передаваемый в блок catch. Класс этого объекта должен быть производными от класса Exception. В отличие от С++ имеется блок finally. Код, заключенный в блок finally будет выполнен как при обычном завершении работы блока try, так и при вызове исключения в этом блоке. Если перед завершением функции, исполнение которой может быть прервано исключением, обязательно должны быть выполнены некоторые действия (например, закрытие ранее открытого файла), следует заключить соответствующий код в блок finally.

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