Приведенная ниже программа является вариантом предыдущего примера, переработанным с целью продемонстрировать применение директивыusing,делающей видимым создаваемое пространство имён.
// Продемонстрировать применение директивы using, using System;
// Сделать видимым пространство имен Counter, using Counter; ,
// Объявить пространство имен для счетчиков, 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 NSDemo3 {
static void Main {
// Теперь класс CountDown может быть использован непосредственно. CountDown cdl = new CountDown(10); int i;
do {
i = cdl.Count ;
Console.Write (i + " ") ;
} while (i > 0);
Console.WriteLine ;
CountDown cd2 = new CountDown (20);
do {
i = cd2.Count ;
Console.Write (i + " ");
} while (i > 0);
Console.WriteLine ;
cd2.Reset(4) ; do {
i = cd2.Count ;
Console.Write(i + " ");
} while (i > 0);
Console.WriteLine ;
}
}
В эту версию программы внесены два существенных изменения. Первое из них состоит в применении директивыusingв самом начале программы, как показано ниже.
using Counter;
Благодаря этому становится видимым пространство именCounter.Второе изменение состоит в том, что классCountDownбольше не нужно дополнительно определять с помощью пространства именCounter,как демонстрирует приведенная ниже строка кода из методаMain .
CountDown cdl = new CountDown(10);
Теперь пространство именCounterстановится видимым, и поэтому классCountDownможет быть использован непосредственно. -
Рассматриваемая здесь программа иллюстрирует еще одно важное обстоятельство: применение одного пространства имен не отменяет действие другого. Когда пространство имен делается видимым, это просто дает возможность использовать его содержимое без дополнительного определения имен. Следовательно, в данном примере оба пространства имен,SystemиCounter,становятся видимыми.
Вторая форма директивы using
Вторая форма директивыusingпозволяет определить еще одно имя (так называемый
using
где
Ниже приведен вариант программы из предыдущего примера, измененный с целью показать создание и применение псевдонимаMyCounterвместо составного имениCounter.CountDown.