Благодаря этому становится видимым пространство имен Counter. Второе изменение состоит в том, что класс CountDown больше не нужно дополнительно определять с помощью пространства имен Counter, как демонстрирует приведенная ниже строка кода из метода Main ().
CountDown cdl = new CountDown(10);
Теперь пространство имен Counter становится видимым, и поэтому класс CountDown может быть использован непосредственно. -
Рассматриваемая здесь программа иллюстрирует еще одно важное обстоятельство: применение одного пространства имен не отменяет действие другого. Когда пространство имен делается видимым, это просто дает возможность использовать его содержимое без дополнительного определения имен. Следовательно, в данном примере оба пространства имен, System и Counter, становятся видимыми.
Вторая форма директивы using
Вторая форма директивы using позволяет определить еще одно имя (так называемый
using
где
Ниже приведен вариант программы из предыдущего примера, измененный с целью показать создание и применение псевдонима MyCounter вместо составного имени Counter.CountDown.
// Продемонстрировать применение псевдонима, using System;
// Создать псевдоним для составного имени Counter.CountDown. using MyCounter = Counter.CountDown;
// Объявить пространство имен для счетчиков, namespace Counter {
// Простой вычитающий счетчик, class CountDown { int val;
public CountDown(int n) { val = n;
}
public void Reset(int n) { val = n;
} '
public int Count() {
if(val > 0) return val — ; else return 0;
}
}
}
class NSDemo4 {
static void Main() {
// Здесь и далее псевдоним MyCounter используется // вместо составного имени Counter.CountDown.
MyCounter cdl = new MyCounter(10); int i;
do {
i = cdl... Count() ;
Console.Write(i + ' ');
} while (i > 0);
Console.WriteLine () ;
MyCounter cd2 = new MyCounter (20);
do {
i = cd2.Count ();
Console.Write (i + ' ');
} while (i > 0);
Console.WriteLine ();
cd2.Reset (4); do {
i = cd2.Count ();
Console.Write (i + ' ');
