// Объявить пространство имен 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;
}
}
}
// Объявить пространство имен Counter2. namespace Counter2 {
/* Этот класс CountDown относится к пространству имен Counter2 и поэтому не вступает в конфликт с аналогичным классом из пространства имен Counter.
*/
class CountDown {
public void Count {
Console.WriteLine("Это метод Count из " +
"пространства имен Counter2.");
}
}
}
class NSDemo2 {
static void Main {
// Это класс CountDown из пространства имен Counter. Counter.CountDown cdl = new Counter.CountDown(10);
// Это класс CountDown из пространства имен Counter2. Counter2.CountDown cd2 = new Counter2.CountDown; int i;
do {
i = cdl.Count;
Console.Write(i + " ");
} while(i > 0);
Console.WriteLine;
Вот к какому результату приводит выполнение этой программы.
10 987654 3.210
Это метод Count из пространства имен Counter2.
Как следует из приведенного выше результата, классCountDownиз пространства именCounterсуществует отдельно от класса того же названия из пространства именCounter2,и поэтому конфликт имен не возникает. Несмотря на всю простоту данного примера, он наглядно показывает, как удается избежать конфликта имен в собственном коде и коде, написанном другими разработчиками, поместив классы с одинаковыми именами в разные пространства имен.
Директива using
Если в программе присутствуют частые ссылки на члены конкретного пространства имен, то указывать это пространство всякий раз, когда требуется ссылка на него, не очень удобно. Преодолеть это затруднение помогает директиваusing.В подавляющем большинстве приводившихся ранее примеров программ с помощью этой директивы делалось видимым глобальное для C# пространство именSystem,поэтому она отчасти вам уже знакома. Как и следовало ожидать, с помощью директивыusingможно сделать видимыми вновь создаваемые пространства имен.
Существуют две формы директивыusing.Ниже приведена первая из них:
using
где