рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Using namespace

Using namespace - раздел Программирование, C# Спецификация языка Версия 4.0 Директива_Using_Name...

Директива_using_namespace импортирует типы, содержащиеся в пространстве имен, в непосредственно вмещающую единицу компиляции или тело пространства имен, что позволяет использовать идентификатор каждого типа без уточнения.

директива_using_namespace:
using имя_пространства_имен ;

Внутри объявлений членов в единице компиляции или теле пространства имен, содержащем директиву_using_namespace, на типы в данном пространстве имен можно ссылаться непосредственно. Пример:

namespace N1.N2
{
class A {}
}

namespace N3
{
using N1.N2;

class B: A {}
}

В данном примере внутри объявлений членов в пространстве имен N3 члены типа N1.N2 доступны непосредственно, и таким образом класс N3.B является производным от класса N1.N2.A.

Директива_using_namespace импортирует типы, содержащиеся в данном пространстве имен, но не импортирует вложенные пространства имен. В этом примере

namespace N1.N2
{
class A {}
}

namespace N3
{
using N1;

class B: N2.A {} // Error, N2 unknown
}

директива_using_namespace импортирует типы, содержащиеся в N1, но не пространства имен, вложенные в N1. Таким образом, ссылка на N2.A в объявлении B приводит к ошибке времени компиляции, так как в области нет членов с именем N2.

В отличие от директивы_using_alias, директива_using_namespace может импортировать типы, идентификаторы которых уже определены внутри вмещающей единицы компиляции или тела пространства имен. В действительности, имена, импортированные директивой_using_namespace, скрыты членами с тем же именем во вмещающей единице компиляции или теле пространства имен. Например:

namespace N1.N2
{
class A {}

class B {}
}

namespace N3
{
using N1.N2;

class A {}
}

В данном случае внутри объявлений членов в пространстве имен N3, A ссылается на N3.A, а не на N1.N2.A.

Если более одного пространства имен, импортированных директивами_using_namespace в одну и ту же единицу компиляции или тело пространства имен, содержат типы с одинаковым именем, ссылки на эти типы считаются неоднозначными. В этом примере

namespace N1
{
class A {}
}

namespace N2
{
class A {}
}

namespace N3
{
using N1;

using N2;

class B: A {} // Error, A is ambiguous
}

N1 и N2 содержат член A, а поскольку N3 импортирует оба, ссылка на A в N3 дает ошибку времени компиляции. В этой ситуации можно разрешить конфликт либо квалифицируя ссылки на A, либо введя директиву_using_alias, выбирающую отдельный A. Например:

namespace N3
{
using N1;

using N2;

using A = N1.A;

class B: A {} // A means N1.A
}

Как и директива_using_alias, директива_using_namespace не размещает новые члены в базовой области объявлений единицы компиляции или пространства имен, а влияет только на единицу компиляции или тело пространства имен, в котором находится.

Имя_пространства_имен, на которое ссылается директива_using_namespace, разрешается таким же образом, как имя_пространства_имен_или_типа, на которое ссылается директива_using_alias. Таким образом, директивы_using_namespace в одной и той же единице компиляции или теле пространства имен не влияют друг на друга и могут быть записаны в любом порядке.

– Конец работы –

Эта тема принадлежит разделу:

C# Спецификация языка Версия 4.0

Microsoft, Windows, Visual Basic, Visual C# и Visual C++ являются охраняемыми товарными знаками корпорации Майкрософт в США и других странах...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Using namespace

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Pragma warning
Директива #pragma warning используется для о

System.ValueType
Все типы значений неявно наслед

Decimal
Тип decimal представляет собой 128-разряд

Checked и unchecked
Состояние определенного присва

Break, continue и goto
Состояние определенного присва

Try-catch
Для оператора stmt в форме try блок_try catch(...

Try-finally
Для оператора stmt в форме try блок_try finally &

Try-catch-finally
Анализ определенного присваива

Foreach
Для оператора foreach stmt в форме foreach ( неуп

Checked и unchecked
Операторы checked и unchecked используются для

From, let, where, join и orderby
Выражение запроса с вторым пред

Groupby
Выражение запроса вида from x in e group v by k п

Foreach
Оператор foreach осуществляет перечиl

Continue
Оператор continue начинает новую итера

Checked и unchecked
Операторы checked и unchecked используются для

Using alias
Директива_using_alias вводит идентифика&

Partial
Модификатор partial используется для

Volatile
Если объявление_поля включает м

MoveNext
Метод MoveNext объекта перечислителя и

Current
На свойство Current объекта перечисли

Dispose
Метод Dispose используется для очистк

GetEnumerator
Перечислимый объект предоставл

Partial
Модификатор partial указывает, что объ

System.Array
Тип System.Array является абстрактным базо

Partial
Модификатор partial указывает, что дан

System.Enum
Тип System.Enum — это абстрактный базовый к

System.Exception
Класс System.Exception является базовым типом &

AttributeUsage
Атрибут AttributeUsage используется для опи

Obsolete
Атрибут Obsolete используется для поме

COM и Win32
Исполняющая среда .NET предоставля&

IndexerName
Индексаторы реализованы в .NET с пом

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги