Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретический_курс.doc
Скачиваний:
37
Добавлен:
10.11.2019
Размер:
7.68 Mб
Скачать

2. Пространства имён

Пространства имен (namespace) — это способ, благодаря которому .NET избегает конфликтов имён между классами. Они предназначены для того, чтобы исключить ситуации, когда разработчик определяет класс, представляющий заказчика, называяе его, например Customer, а после этого кто-то другой делает то же самое (подобный сценарий достаточно распространён).

Пространство имён — это не более чем группа типов данных, но дающая тот эффект, что имена всех типов данных в пределах пространства имён автоматически снабжаются префиксом ― названием пространства имён. Пространства имён можно вкладывать друг в друга. Например, большинство базовых классов .NET общего назначения находятся в пространстве имен System. Базовый класс Array относится к этому пространству, поэтому его полное имя — System.Array.

Платформа .NET требует, чтобы все имена были объявлены в пределах пространства имён; например, разработчик может поместить свой класс MyClass в пространство имён MyCompany. Тогда полное имя этого класса будет выглядеть как MyCompany.MyClass (где «точка» является оператором; действует ещё и для реализации неявного вызова функциональности технологии автодополнения IntelliSense).

Запомним, что если пространство имён не указано явно, тип будет добавлен к безымянному глобальному пространству имён.

В большинстве ситуаций Microsoft рекомендует применять хотя бы два вложенных пространства имён: первое — наименование, напримеркомпании, а второе — название технологии или пакета программного обеспечения, к которому относится класс, чтобы это выглядело примерно так: MyCompany.SomeNamespace.MyClass. В большинстве случаев такой подход защитит классы приложения от возможных конфликтов с именами классов, написанных разработчиками из других компаний.

В следующей таблице приведён краткий список некоторых (но, конечно же, не всех) предлагаемых в .NET пространств имён, которые были поделены на группы на основе функциональности:

Пространство имён в .NET

Описание

System

Внутри пространства имён System содержится множество полезных типов, позволяющих иметь дело с внутренними данными, математическими вычислениями, генерированием случайных чисел, переменными среды и сборкой мусора, а также ряд наиболее часто применяемых исключений и атрибутов

System.Collections

System.Collections.Generic

В этих пространствах имён содержится ряд контейнерных типов, а также несколько базовых типов и интерфейсов, которые позволяют создавать специальные коллекции

System.Data

System.Data.Common

System.Data.EntityClient

System.Data.SqlClient

Эти пространства имён применяются для взаимодействия с базами данных с помощью ADO.NET

System.IO

System.IO.Compression

System.IO.Ports

В этих пространствах содержится много типов, предназначенных для работы с операциями файлового ввода-вывода, сжатия данных и манипулирования портами

System.Reflection

System.Reflection.Emit

В этих пространствах имён содержатся типы, которые поддерживают обнаружение типов во время выполнения, а также динамическое создание типов

System.Runtime.InteropServices

В этом пространстве имён содержатся средства, с помощью которых можно позволить типам .NET взаимодействовать с "неуправляемым кодом" (например, DLL-библиотеками на базе С и серверами СОМ) и наоборот

System.Drawing

System.Windows.Forms

В этих пространствах имён содержатся типы, применяемые для построения настольных приложений с использованием исходного набора графических инструментов.NET (Windows Forms)

System.Windows

System.Windows.Controls

System.Windows.Shapes

Пространство System.Windows является корневым среди этих нескольких пространств имен, которые представляют собой набор графических инструментов Windows Presentation Foundation (WPF)

System.Linq

System.Xml.Linq

System.Data.DataSetExtensions

В этих пространствах имён содержатся типы, применяемые при выполнении программирования с использованием API-интерфейса LINQ

System.Web

Это пространство имён является одним из многих, которые позволяют создавать веб-приложения ASP.NET

System.ServiceModel

Это пространство имен является одним из многих, которые позволяется применять для создания распределенных приложений с помощью API-интерфейса Windows Communication Foundation (WCF)

System.Workflow.Runtime

System.Workflow.Activities

Эти два пространства имен являются главными представителями многочисленных пространств имен, в которых содержатся типы, применяемые для построения поддерживающих рабочие потоки приложений с помощью API-интерфейса Windows Workflow Foundation (WF)

System.Threading

System.Threading.Tasks

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

System.Security

Безопасность является неотъемлемым свойством мира .NET. В относящихся к безопасности пространствах имен содержится множество типов, которые позволяют иметь дело с разрешениями, криптографической защитой и т.д.

System.Xml

В этом ориентированном на XML пространстве имён содержатся многочисленные типы, которые можно применять для взаимодействия с XML-данными