ExpC_Module 9ru_1.ppt
- Количество слайдов: 17
Модуль 9 Свойства и индексы
Обзор модуля В этом модуле вы изучите n Свойства в C# n Свойства, поля и методы n Индексаторы Изучение C#/ Модуль 9/ 2 из 17
Занятие 1 - Свойства в C# На первом занятии, Свойства в C#, вы изучите: n Описание свойств в C#. n Описание средств доступа (аксессоров) к свойствам в C#. n Объяснение типов свойств. Изучение C#/ Модуль 9/ 3 из 17
Что такое свойства? n n n Модификаторы доступа public, private, protected и internal используются для управления доступом к полям и методам в C#. Поля, отмеченные public, доступны из других классов, а поля, отмеченные private, доступны только в своем классе. C# использует особенности свойств, позволяющих присваивать и получать значения полей, объявленных с любым модификатором доступа, защищенным образом. Изучение C#/ Модуль 9/ 4 из 17
Приложения n Свойства Синтаксис позволяют защищать поле в классе путем записи и чтения поля через объявление <access_modifer> <return_type> <Property. Name> свойства. { n // тело свойства Свойства позволяют получать доступ к полям, } отмеченным private, которые иначе были бы где, недоступны. access_modifier: Указывает область видимости доступа к n Свойства гарантируют защищенность private, public, свойству, которое может быть закрытых protected или internal. данных. return_type: Указывает тип данных возвращаемого свойства. n Свойства поддерживают абстракцию и Property. Name: Имя свойства. инкапсуляцию, показывая только необходимые действия и скрывая их реализацию. Изучение C#/ Модуль 9/ 5 из 17
Средства доступа (аксессоры) “get” и “set” n Аксессоры Вывод Пример Синтаксис свойств позволяют читать и присваивать значения поля через реализацию class Salary. Details Employee Name: Patrick Johnson <Property. Name> <access_modifer> <return_type> { двух специальных аксессоров методов get и { private string _emp. Name; get public set. string Employee. Name { { n get // возвращает значение { } return _emp. Name; } set { { // присваивает значение _emp. Name = value; } } Аксессор get используется для чтения величины при указании имени свойства. } n } static void Main (string [] args) { Salary. Details obj. Sal = new Salary. Details(); obj. Sal. Employee. Name = “Patrick Johnson”; } Console. Write. Line(“Employee Name: “ + obj. Sal. Employee. Name); Аксессор set используется для присваивания значения и выполняется, когда свойство получает новое значение с помощью оператора } присваивания. Изучение C#/ Модуль 9/ 6 из 17
Типы Свойства разделяются на три категории - только Синтаксис § для чтения (read-only), только чтения-записи. (write. Следующий синтаксис создает свойство только для записи для чтения. only) и для чтения-записи (read-write). <access_modifer> <return_type> <Property. Name>{ <return type> get { n // Свойствовозвращает значение read-only позволяет получать } } значение поля с модификатором private. set { § Следующий синтаксис значение // присваивает создает свойство только для записи. } n <access_modifer> <return_type> <Property. Name>{ Свойство write-only позволяет изменять } set значение поля с модификатором private. { // присваивает значение } } n Свойство read-write позволяет получать и записывать новое значение поля с Изучение C#/ Модуль 9/ 7 из 17 модификатором private.
Занятие 2 - Свойства, поля и методы На втором занятии, Свойства, поля и методы, вы изучите: n Различия между полями и свойствами. n Различия между полями и методами. Изучение C#/ Модуль 9/ 8 из 17
Различия между свойствами и полями Свойства Поля Свойства - элементы данных, значения которых можно читать и изменять. Поля - элементы данных, хранящие значения. Свойства не могут быть классифицированы как переменные, поэтому нельзя использовать ключевые слова ref и out. Поля являются переменными, которые могут использовать ключевые слова ref и out. Свойства определяются как несколько выполняемых выражений. Поля могут быть определены единственным выражением. Свойства определяются с двумя акссессорами get и set. Поля не определяются с аксессорами. Свойства могут выполнять различные действия при изменении значения поля. Поля неспособны выполнять какие-либо действия. Следующий код создает свойство с именем Amount. public int Amount { get{}; set{}; } private int _calc. Amount; Следующий код создает private поле с именем _calc. Amount. private int _calc. Amount; Изучение C#/ Модуль 9/ 9 из 17
Различия между свойствами и методами Свойства Методы Свойства представляют характеристики объекта. Методы представляют поведение объекта. Свойства содержат два метода, автоматически вызываемые без указания их имени. Методы вызываются указанием их имени вместе с именем объекта класса. Свойства не могут иметь параметров. Методы могут включать список параметров. Свойства могут быть переопределены, но не перегружены. Методы могут быть и переопределены, и перегружены. Следующий код создает свойство с именем Amount. public int Amount { get{ }; set{ }; } Следующий код создает метод с именем Calc. Amount, использующим три параметра num. One, num. Two и num. Three. public int Calc. Amount (int num. One, int num. Two, int num. Three) { } Изучение C#/ Модуль 9/ 10 из 17
Занятие 3 - Индексаторы На последнем занятии, Индексаторы, вы изучите: n Объяснение индексаторов. n Создание и использование индексаторов. n Различия между свойствами и индексаторами. Изучение C#/ Модуль 9/ 11 из 17
Назначение индексаторов Изучение C#/ Модуль 9/ 12 из 17
Индексаторы n n Элементы данных, позволяющие получать доступ к данным объектов аналогично доступу к массивам. Позволяют использовать индекс объекта для доступа к его значениям. Реализация индексаторов аналогична реализации свойств. Индексаторы в C# также известны как "умные" массивы. Изучение C#/ Модуль 9/ 13 из 17
Объявление индексаторов n Индексатор Синтаксис Вывод Пример можно определить указанием следующего: Employee Names : <return_type> this [<parameter>] <access_modifier> Jack Anderson Kate Jones { n get Модификатора доступа, определяющего { область видимости индексатора. // возвращает значение n } Возвращаемого типа индексатора. set n { Ключевого слова this , указывающего на // присваивает значение } текущий экземпляр текущего класса. } n Нотацию со скобками ([]), состоящую из типа где, access_modifier: Определяет область видимости индексатора, который данных и идентификатора индекса. может быть private, public, protected или internal. n Открывающих и закрывающих фигурных return_type: Тип возвращаемого индексатором значения. скобок, содержащих объявление аксессоров parameter: Параметр индексатора. set и get. class Employee. Details { public string[] emp. Name = new string[2]; public string this[int index] { get { return emp. Name[index]; } set { emp. Name[index] = value; } } static void Main(string[] args) { Employee. Details obj. Emp = new Employee. Details(); obj. Emp[0] = “Jack Anderson”; obj. Emp[1] = “Kate Jones”; Console. Write. Line(“Employee Names: “); for (int i=0; i<2; i++) { Console. Write(obj. Emp[i] + “t”); } } } Изучение C#/ Модуль 9/ 14 из 17
Параметры n n Индексаторы должны иметь как минимум один параметр. Параметр определяет позицию индекса, указывающую на читаемое/изменяемое значение. Индексаторы также могут иметь несколько параметров. Индексаторы могут быть доступны напрямую, указанием числа индекса вместе с экземпляром класса. Изучение C#/ Модуль 9/ 15 из 17
Различия между свойствами и индексаторами Свойства Индексаторы Свойства получают уникальное имя при их объявлении. Индексаторы не могут иметь имен и используют ключевое слово this в своем объявлении. Свойства вызываются по имени. Индексаторы вызываются через индекс созданного экземпляра. Свойства могут быть объявлены статичными. Индексаторы никогда не объявляются статичными. Свойства всегда объявляются без параметров. Индексаторы объявляются хотя бы с одним параметром. Свойства не перегружаемы. Индексаторы перегружаемы. Замещенные свойства доступны через использование синтаксиса base. Prop, где Prop - имя свойства. Замещенные индексаторы доступны через использование синтаксиса base[ind. Exp], где ind. Exp - список параметров, разделенных запятыми. Изучение C#/ Модуль 9/ 16 из 17
Резюме n Свойства в C# n n Свойства, поля и методы n n Аксессоры свойств позволяют читать и присваивать значения полям. Поле - это элемент данных, хранящий некоторую информацию. Свойства позволяют получать доступ к закрытым полям класса. Методы - это элементы данных, определяющие поведение объекта. Индексаторы n Индексаторы рассматривают объект как массив, обеспечивая быстрый доступ к данным объекта. Изучение C#/ Модуль 9/ 17 из 17
ExpC_Module 9ru_1.ppt