Пространство имен предназначено для обеспечения возможности сохранения одного набора имен отдельно от другого. Названия классов, объявленные в одном пространстве имен, не конфликтуют с теми же именами классов, которые были объявлены в другом.
Определение пространства имен
Определение пространства имен начинается с пространства именключевых слов, за которым следует имя пространства имен следующим образом:
namespace namespace_name {
// code declarations
}
Чтобы вызвать версию или функцию, поддерживающую пространство имен, добавьте имя пространства имен следующим образом:
namespace_name.item_name;
Следующая программа демонстрирует использование пространств имен:
using System;
namespace first_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
class TestClass {
static void Main(string[] args) {
first_space.namespace_cl fc = new first_space.namespace_cl();
second_space.namespace_cl sc = new second_space.namespace_cl();
fc.func();
sc.func();
Console.ReadKey();
}
}
Когда приведенный выше код компилируется и выполняется, он производит следующий результат:
Inside first_space
Inside second_space
Использование ключевого слова
С помощью ключевых слов говорится о том , что программа использует имена в заданном пространстве имен. Например, мы используем пространство имен System в наших программах. Здесь определен класс Console.
Console.WriteLine ("Hello there");
Мы могли бы написать полное имя как:
System.Console.WriteLine("Hello there");
Вы также можете избежать добавления пространств имен с помощьюдирективы namespace. Эта директива сообщает компилятору, что последующий код использует имена в указанном пространстве имен. Таким образом, пространство имен подразумевается для следующего кода: Перепишем предыдущий пример, используя директиву:
using System;
using first_space;
using second_space;
namespace first_space {
class abc {
public void func() {
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space {
class efg {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
class TestClass {
static void Main(string[] args) {
abc fc = new abc();
efg sc = new efg();
fc.func();
sc.func();
Console.ReadKey();
}
}
Когда приведенный выше код компилируется и выполняется, он производит следующий результат:
Inside first_space
Inside second_space
Вложенные пространства имен
Вы можете определить одно пространство имен внутри другого пространства имен следующим образом:
namespace namespace_name1 {
// code declarations
namespace namespace_name2 {
// code declarations
}
}
Вы можете обращаться к членам вложенного пространства имен с помощью оператора точки (.) Следующим образом:
using System;
using first_space;
using first_space.second_space;
namespace first_space {
class abc {
public void func() {
Console.WriteLine("Inside first_space");
}
}
namespace second_space {
class efg {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
}
class TestClass {
static void Main(string[] args) {
abc fc = new abc();
efg sc = new efg();
fc.func();
sc.func();
Console.ReadKey();
}
}
Когда приведенный выше код компилируется и выполняется, он производит следующий результат:
Inside first_space
Inside second_space
0 комментариев