Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

3.6Метаданные

Для связи между собой программные компоненты используют интерфейсы и типы, для чего среды выполнения должны располагать не только скомпилированными на промежуточный язык кодами, но и информацией об этих интерфейсах и типах. В действительности среды выполнения имеет дело с переносимыми исполняемыми файлами, в которых вместе с кодами помещаются метаданные, описывающие интерфейсы и типы. Метаданные генерируются компиляторами в соответствии с типами данных исходной программы. В языке C++/CLI, например, метаданные создаются в соответствии с указаниями ключевых слов управляемого расширения. Специальные средства отражения позволяют на языках C#, Java и C++/CLI одним компонентам программы получать информацию о других компонентах через их метаданные.

3.7Библиотеки, пакеты и пространства имён

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

C++/CLI. Пространство имён, охватывающее требуемые классы и интерфейсы, объявляется в программном компоненте с помощью ключевого слова namespace и указания названия этого пространства. Для использования этого пространства имён другой компонент, написанный также на языке C++/CLI, должен воспользоваться оператором using namespace, назвав пространство имён.

При использовании пространств имён библиотеки .NET Framework Class Library на языке C++/CLI необходимо применить ряд директив, например,

#using <mscorlib.lib>

#using <System.DLL>

#using <System.Windows.Forms.DLL>

которые делают классы и интерфейсы этой библиотеки доступными.

Посредством оператора using namespace можно упростить ссылку к пространствам имён, опуская в ссылке имена пространств, охватывающих указанное имя. Например,

using namespace System;

требует ссылаться к классу Form, входящему в пространство имён Forms, которое в свою очередь входит в пространство имён Windows, как

Windows::Forms::Form ^form=gcnew Windows::Forms::Form();

Если же в начале программы указать пространство имён

using namespace System::Wlndows::Forms;

то ссылка к этому классу упростится и будет следующей:

Form ^form= gcnew Form ();

C#. Пространство имён объявляется с помощью ключевого слова namespace и используется в других программных компонентах, написанных также на языке C#, посредством указания названия пространства в операторе using.

Директива #using не используется.

В отличие от языка C++/CLI в языке C# названия пространств имён отделяются не двумя двоеточиями, а точкой. Например:

using System. Windows.Forms;

Windows.Forms.Form form= new Windows.Forms.Form ();

Java и J#. В данной книге специально, чтобы использовать библиотеку, отличную от библиотеки .NET Framework, применительно к языку Java (J#) применяются библиотеки (пакеты) языка Java, для подключения которых употребляется оператор import.

import java.lang.*;

import java.awt,*;

import java.util.*;

Этот же оператор применяется и при импортировании классов библиотеки .NET Framework в среде Visual Studio .NET для языка J#, например:

Import java.System.*;

4.Некоторые особенности языков C++/CLI, C# и Java(J#)