Иллюстрированный самоучитель по Architecture .NET

Директива #using и оператор using

Директива #using делает доступной для компилятора информацию о типах, содержащуюся в сборке. Сборка содержит метаданные (описание информации о типах) и код на промежуточном языке IL. C6opKamscorlib.dll содержит описания многих полезных стандартных классов, определенных в .NET Framework, в том числе класса Console (Консоль), использовавшегося в предыдущем примере, и класса Object (Объект), который является базовым для всех управляемых классов.

Добавим, что директива #using совершенно не похожа на директиву #include, вставляющую в компилируемый файл некоторый другой исходный файл. Как отмечено выше, директива #using скорее напоминает по совершаемым действиям директиву #import.

В предыдущем примере System (Системное пространство имен) представляет пространство имен C++, прямо соответствующее пространству имен .NET, имеющему то же название. Полное название класса состоит из названия пространства имен, за которым следуют два двоеточия и название класса, например, System::Console (Система::Консоль) Хотя выражение using namespace, в предыдущем примере не используется, оно позволяет использовать короткие имена классов, например, Console (Консоль).

Обратим ваше внимание на то, что выражение using namespace (определенное стандартом ANSI C++) и директива #using (определенная в Microsoft C++) – совершенно разные вещи. Приведем пример использования выражения using namespace, позволяющего заменить полное имя System::Console (Система::Консоль) укороченным Console (Консоль):

//HelloKorld.cpp
fusing <rrscorlib.dll>
using namespace System;
// использовать пространство имен Система;
// этот оператор позволяет использовать короткие имена классов
void main(void) {
Console::WriteLine("Hello World"); // "Привет, Мир"
// пространство имен опущено
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.