Директива #using и оператор using
Директива fusing делает доступной
для компилятора информацию о типах,
содержащуюся в сборке. Сборка содержит
метаданные (описание информации о типах) и
код на промежуточном языке IL. C6opKamscorlib.dll
содержит описания многих полезных
стандартных классов, определенных в .NET
Framework, в том числе класса Console (Консоль),
использовавшегося в предыдущем примере, и
класса Object (Объект), который является
базовым для всех управляемых классов.
Добавим, что директива #us_ng совершенно не
похожа на директиву #include, вставляющую в
компилируемый файл некоторый другой
исходный файл. Как отмечено выше, директива
fusing скорее напоминает по совершаемым
действиям директиву # import.
В предыдущем примере System (Системное
пространство имен) предсташшет
пространство имен C++, прямо соответствующее
пространству имен .NET, имеющему то же
название. Полное название класса состоит из
названия пространства имен, за которым
следуют два двоеточия и название класса,
например, System: :Console (Система::Консоль) Хотя
выражение using namespace, в предыдущем примере не
используется, оно позволяет использовать
короткие имена классов, например, Console (Консоль).
Обратим ваше внимание на то, что выражение
using namespace (определенное стандартом ANSI C++) и
директива fusing (определенная в Microsoft C++) —
совершенно разные вещи. Приведем пример
использования выражения using namespace,
позволяющего заменить полное имя System: : Console
(Система.:Консоль) укороченным Console (Консоль):
//HelloKorld.cpp
fusing <rrscorlib.dll>
using namespace System;
// использовать пространство имен
Система;
// этот оператор позволяет
использовать короткие имена классов
void main(void) {
Console::WriteLine("Hello World"); // "Привет,
Мир"
// пространство имен опущено
}
|