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.

// Продемонстрировать применение псевдонима, 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 + " ");

} while (i > 0);

Console.WriteLine ();

}

}

Перейти на страницу:

Похожие книги