ExpC_Module 10ru_1.ppt
- Количество слайдов: 17
Модуль 10 Пространства имен
Обзор модуля В этом модуле вы изучите n Пространства имен n Вложенные пространства имен Изучение C#/ Модуль 10/ 2 из 17
Занятие 1 - Пространства имен На первом занятии, Пространства имен, вы изучите: n Описание пространств имен и их назначение. n Определение преимуществ и характеристик пространств имен. n Описание системных пространств имен. n Описание пользовательских пространств имен. Изучение C#/ Модуль 10/ 3 из 17
Введение в пространства имен Назначение n При работе с огромным проектом могут Пример - Вставка дескриптивного префикса Создание пространств имен быть ситуации, когда имена классов совпадают. namespace Samsung class Samsung. Television { { class Television {. . . n }Это выражается в конфликте имен. . } class Samsung. Walk. Man class Walk. Man { {. . . n Эта проблема может быть решена наличием } } } индивидуальных class Sony. Television модулей проекта, namespace Sony { {использующих пространства имен для хранения class Television. . . { }соответствующих классов. . } class Sony. Walk. Man class Walkman { {. . . n При этом классы могут иметь одинаковые имена } } } без возникновения конфликтов. Изучение C#/ Модуль 10/ 4 из 17
Пространства имен n n n n Используются для логической группировки Интерфейс - Ссылочный тип, содержащий классов и предотвращения конфликтов имен и объявления событий, индексаторов, методов между классами с идентичными именами. свойств. Пространства имен уменьшают любые сложности, Структура - Тип, который может хранить связанные с тем, что типов данных. значения различных та же программа требуется в другом приложении. Перечисление - Тип, состоящий из списка Помимо классов, в пространстве имен могут быть именованных констант. объявлены следующие структуры данных. n Интерфейс Делегирование - Пользовательский ссылочный n Структура тип, ссылающийся на один или несколько методов. n Перечисление n Делегирование Изучение C#/ Модуль 10/ 5 из 17
Характеристики и преимущества Пространство имен обеспечивает следующие Пространство имен группирует общие и преимущества: связанные классы, структуры и интерфейсы, n Позволяет использовать несколько классов с поддерживает принципы инкапсуляции и одинаковыми абстракции ООП. именами, создавая их в разных пространствах имен. Пространство имен имеет следующие n Делает систему модульной. характеристики: n n n § § § Обеспечивает иерархическую структуру, помогающую определить логику группировки классов. Позволяет добавлять больше классов, структур, перечислений, делегирований и интерфейсов после объявления пространства имен. Включает классы с именами, уникальными в пределах пространства имен. Изучение C#/ Модуль 10/ 6 из 17
Системные пространства имен Некоторые - Содержит -классы, встроенные Пространства имен, используемых классы и System. IO из широкосодержащиепозволяющие System. Collections Содержит пространств имен внутри пространства данных сложные классы, интерфейсы, структуры, делегирования и читать и записывать потоки. System: и файлы. интерфейсы, определяющие такие перечисления, называются системными. битовые n System. Collections структуры данных, как списки, запросы, массивы, хэш-таблицы и словари. n System. Data n System. Net - Содержит классы, позволяющие nсоздание веб-приложений. системное Чаще всего используемое n System. Diagnostics пространство - Содержит Framework - System. n n System. IO имен для. NET классы, формирующие System. Data архитектуру ADO. NET. n System. Net n System. Web - Обеспечивает классы и nинтерфейсы, пространство имен содержит классы, Системное позволяющие взаимодействие между n System. Web определяющие значение-и Содежрит классы, ссылочные типы nбраузером и сервером. System. Diagnostics данных, интерфейсы и другие пространства имен. используемые для взаимодействия с системными процессами. nn n n Изучение C#/ Модуль 10/ 7 из 17
Использование пространства имен “System” n Пространство Синтаксис Пример имен System импортируется по умолчанию в. NET Framework. class System; using World <Namespace. Name>; { using <Namespace. Name>. <Class. Name>; class World static void Main(string[] args) <Namespace. Name>. <Class. Name>. <Method. Name>; { { n где, static void Main(string[] args)World”); System. Console. Write. Line(“Hello Namespace. Name: Имя пространства имен. на { System. Console. Write. Line(“This is имен, указывающее C# Programming”); Class. Name: Имя класса, и перечисления. все классы, интерфейсы, структуры к которому необходим a simple Console. Write. Line(“Hello have executed доступ. System. Console. Write. Line(“You World”); Class. Name: C#”); метода класса, который в Method. Name: Имя } program of Имя указанного класса, определенное должен быть вызван. пространстве имен, доступ к которому необходим. } } } Является первой строкой программы вместе с ключевым словом using. Вывод Hello World This is C# Programming You have executed a simple program of C# Изучение C#/ Модуль 10/ 8 из 17
Пользовательские пространства имен n C# позволяет создавать пространства имен с Синтаксис Пример заданными именами для организации структур, namespace Department <Namespace. Name> { классов, интерфейсов, делегирований и перечислений, // Объявления типов class которые могут. Sales доступны для различных быть } { приложений. static void Main(string [] args) где, { Namespace. Name: Имя пользовательского пространства имен. System. Console. Write. Line(“You have created a type-declarations: Различные типы, которые могут быть custom namespace named Department”); n Позволяют управлять областью видимости класса объявлены. } выбором } Это может бытьпространстваперечисление, делегат или подходящего класс, интерфейс, имен для класса. другое пространство имен. } n Объвляются с помощью ключевого слова namespace и Вывод доступны с помощью ключевого слова using You have created a custom namespace named Department аналогично встроенному пространству имен. Изучение C#/ Модуль 10/ 9 из 17
Модификаторы доступа для пространств имен n Пространства Пример имен всегда доступны (public). using System; public namespace Products n Нельзя применять к пространствам имен { модификаторы доступа public, protected, class Computers { private или internal. [] args) static void Main(string { Console. Write. Line(“This class provides information about Computers”); n Если к объявлению пространства имен } модификатора доступа, компилятор сгенерирует } }ошибку. Изучение C#/ Модуль 10/ 10 из 17
Относительное именование n Класс, Пример определенный в пространстве имен, доступен только по своему имени. namespace Examination using System; { using Students; class Students namespace Score. Report { n { public string Subject = “Science”; class Student. Details { public int Marks = 60; static void Main(string[] args) string _stud. Name = “Alexander”; { int _stud. ID = 30; Student. Details obj. Students = new Student. Details(); n public Student. Details() = new Score. Report(); Score. Report obj. Report { Console. Write. Line(“Subject: “ + obj. Report. Subject); Console. Write. Line(“Student obj. Report. Marks); Console. Write. Line(“Marks: “ + Name: “ + _stud. Name); Console. Write. Line(“Student ID: “ + _stud. ID); } } } n } } Для доступа к этому классу, необходимо указать имя класса. Такая форма указания класса называется относительным именованием. Использование относительного именования }результируется в коротких именах и может быть реализовано с помощью ключевого слова using. Изучение C#/ Модуль 10/ 11 из 17
Абсолютное именование n C# позволяет Пример использовать класс вне своего пространства имен. namespace Examination using System; { namespace Students class Score. Report { { class Student. Details = “Science”; n public string Subject { public int Marks = 60; string _stud. Name = “Alexander”; static void Main(string[] args) { int _stud. Id = 30; Students. Student. Details public Student. Details() obj. Students = new Students. { Student. Details(); Score. Report obj. Report = new Score. Report(); + Console. Write. Line(“Student Name: “ Console. Write. Line(“Subject: “ + obj. Report. Subject); n _stud. Name); Console. Write. Line(“Marks: “ + obj. Report. Marks); Console. Write. Line(“Student ID: “ + _stud. Id); } } } Класс вне своего пространства имен может быть доступен указанием пространства имен с последующим оператором. и именем класса. Такая форма указания класса называется полным абсолютным именованием. n } Использование абсолютного именования отражается в длинных именах и повторах кода. Изучение C#/ Модуль 10/ 12 из 17
Занятие 2 - Вложенные пространства имен На последнем занятии, Вложенные пространства имен, вы изучите: n Описание вложенных пространств имен и их назначение. n Реализацию вложенных пространств имен. n Объяснение псевдонимов пространств имен. Изучение C#/ Модуль 10/ 13 из 17
Вложенные пространства имен n n n C# позволяет определять пространства имен внутри друга. Такая организация пространств имен называется вложенной. Корневому пространству имен может быть присвоено название организации, а вложенные пространства имен получат названия отдельных проектов или модулей. Изучение C#/ Модуль 10/ 14 из 17
Реализация вложенных пространств имен n C# позволяет Синтаксис Пример имен. создавать иерархию пространств using System; namespace Contact <Namespace. Name> class Employee. Details { { namespace <Namespace. Name> public class Employees static void Main(string [] args) { n Такое вложение пространств имен обеспечивается } { public включениемint Emp. ID; объявления namespace <Namespace. Name> одного пространства } Contact. Salary. Details obj. Sal = new { namespace Salary Contact. Salary. Details(); имен внутри объявления другого. } { obj. Sal. Emp. Salary = 1000. 50; } Console. Write. Line(“Salary: public class Salary. Details “ + obj. Sal. Emp. Salary); } { } public double Emp. Salary; } } } Вывод Salary: 1000. 5 Изучение C#/ Модуль 10/ 15 из 17
Псевдонимы пространств имен n n Псевдонимы Пример Синтаксис (алиасы) - временные алтернативные имена, указывающие на ту же using <alias. Name> = <Namespace. Name>; using IO = System. Console; сущность. using Emp = Bank. Accounts. Employee. Details; namespace Bank. Accounts. Employee. Details где, class Alias. Example {Пространство имен, указанное с ключевым alias. Name: определенное пользователем имя, присвоенное public class Employees static using, (string[] args) пространству со всеми классами словом void Main связано имен. { { Employees obj. Emp = new внутри пространства имен. Employees(); public string Emp. Name; obj. Emp. Name = “Peter”; } IO. Write. Line(“Employee Name: когда программа }Псевдонимы также полезны, “ + obj. Emp. Name); } содержит много вложенных объявлений } пространств имен. Псевдоним сделает код удобочитаемым для других Вывод программистов, а также добавит простоты его поддержки. Employee Name: Peter Изучение C#/ Модуль 10/ 16 из 17
Резюме n n Пространства имен делают систему модульной. n C# поддерживает два типа пространств имен системные и пользовательские. Вложенные пространства имен n Пространство имен, объявленное внутри другого пространства, называется вложенным. Изучение C#/ Модуль 10/ 17 из 17
ExpC_Module 10ru_1.ppt