обычно вводится в самом начале любой программы на С#. Как пояснялось в главе 14, классы ввода-вывода определены в пространстве именSystem. 10,подчиненном пространству именSystem.Ему подчинены и многие другие пространства имен, относящиеся к разным частям библиотеки классов С#.
Пространства имен важны потому, что за последние годы в программировании "расплодились" в огромном количестве имена переменных, методов, свойств и классов, применяемых в библиотечных программах, стороннем и собственном коде. Поэтому без отдельных пространств все эти имена будут соперничать за место в глобальном пространстве имен, порождая конфликтные ситуации. Так, если в программе определен классFinder,то этот класс может вступить в конфликт с другим классомFinder,доступным в сторонней библиотеке, используемой в этой программе. К счастью, подобного конфликта можно избежать, используя отдельные пространства имен, ограничивающие область видимости объявленных в них имен.
Объявление пространства имен
Пространство имен объявляется с помощью ключевого словаnamespace.Ниже приведена общая форма объявления пространства имен:
namespace
}
где
Ниже приведен пример объявленияnamespaceдля создания пространства имен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;
}
} // Это конец пространства имен Counter.
Обратите внимание на то, что классCountDownобъявляется в пределах области действия пространства именCounter.Для того чтобы проработать этот пример на практике, поместите приведенный выше код в файлCounter, cs.
Ниже приведен пример программы, демонстрирующий применение пространства именCounter.
// Продемонстрировать применение пространства имен Counter.
using System;
class NSDemo {
static void Main() {
// Обратите внимание на то, как класс CountDown // определяется с помощью пространства имен Counter.