} while(i > 0);

Console.WriteLine();

Вот к какому результату приводит выполнение этой программы.

10 987654 3.210

Это метод Count () из пространства имен Counter2.

Как следует из приведенного выше результата, классCountDownиз пространства именCounterсуществует отдельно от класса того же названия из пространства именCounter2,и поэтому конфликт имен не возникает. Несмотря на всю простоту данного примера, он наглядно показывает, как удается избежать конфликта имен в собственном коде и коде, написанном другими разработчиками, поместив классы с одинаковыми именами в разные пространства имен.

Директива using

Если в программе присутствуют частые ссылки на члены конкретного пространства имен, то указывать это пространство всякий раз, когда требуется ссылка на него, не очень удобно. Преодолеть это затруднение помогает директиваusing.В подавляющем большинстве приводившихся ранее примеров программ с помощью этой директивы делалось видимым глобальное для C# пространство именSystem,поэтому она отчасти вам уже знакома. Как и следовало ожидать, с помощью директивыusingможно сделать видимыми вновь создаваемые пространства имен.

Существуют две формы директивыusing.Ниже приведена первая из них:

usingимя;

гдеимяобозначает имя того пространства имен, к которому требуется получить доступ. Все члены, определенные в указанном пространстве имен, становятся видимыми, и поэтому могут быть использованы без дополнительного определения их имен. Директивуusingнеобходимо вводить в самом начале каждого файла исходного кода перед любыми другими объявлениями или же в начале тела пространства имен.

Приведенная ниже программа является вариантом предыдущего примера, переработанным с целью продемонстрировать применение директивы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 ();

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

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