Пользовательские пространства имен
Пользовательские пространства имен
До этого момента мы создавали небольшие тестовые программы, используя пространства имен, существующие в среде .NET (в частности, пространство имен System). Но иногда при создании приложения бывает удобно объединить связанные типы в одном пользовательском пространстве имён. В C# это делается с помощью ключевого слова namespace.
Предположим, что вы создаете коллекцию геометрических классов с названиями Square (квадрат), Circle (круг) и Hexagon (шестиугольник). Учитывая их родство, вы хотите сгруппировать их в общее пространство имен. Здесь вам предлагаются два основных подхода. С одной стороны, можно определить все классы в одном файле (shapeslib.cs), как показано ниже.
// shapeslib.cs
using System;
namespace MyShapes {
// Класс Circle.
class Circle {/* Интересные методы… */}
// Класс Hexagon.
class Hexagon {/* Более интересные методы… */}
// Класс Square.
class Square {/* Еще более интересные методы… */}
}
Заметим, что пространство имен MyShapes играет роль абстрактного "контейнера" указанных типов. Альтернативным вариантом является размещение единого пространства имен в нескольких C#-файлах. Для этого достаточно "завернуть" определения различных классов в одно пространство имен.
// circle.cs
using System;
namespace MyShapes {
// Клаcc Circle.
class Circle{ }
}
// hexagon.cs
using System;
namespace MyShapes {
// Класс Hexagon.
class Hexagon{}
}
// square.cs
using System;
namespace MyShapes {
// Класс Square.
class Square{}
}
Вы уже знаете, что в том случае, когда одному пространству имен требуются объекты из другого пространства имен, следует использовать ключевое слово using.
// Использование типов из пространства имен MyShapes.
using System;
using MyShapes;
namespace MyApp {
class ShapeTester {
static void Main(string[] args) {
Hexagon h = new Hexagon();
Circle с = new Circle();
Square s = new Square();
}
}
}
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ