SlideShare a Scribd company logo
1 of 12
.NET Framework і C#
Модуль 8. Властивості та індексатори
В цьому модулі:
 Що таке властивість;
 Синтаксис оголошення властивостей;
 Приклад використання властивостей;
 Поняття індексатора;
 Створення одномірних індексаторів;
 Створення багатомірних індексаторів;
 Перевантаження індексаторів;
2
Andrey Gladky
KspDevelop@gmail.com
Що таке властивість
 Властивості відносять до групи методів класу.
 представляють собою метод, який забезпечує як можливість
присвоєння значень приватним даним класу, так і зчитування їх
значень за необхідністю.
 Основою властивості являється поле
 Властивість виглядає як поле, веде себе як метод
 Призначення властивості – можливість приховати особливості
реалізації класу
 Властивості мають бути публічними
Andrey Gladky
KspDevelop@gmail.com 3
Синтаксис оголошення властивостей
 get – для повернення значення
 set – для присвоєння значення
 value – містить значення що присвоюється
 В get і set можна виконувати будь який набір команд
 Типи поля і властивості можуть не співпадати
Andrey Gladky
KspDevelop@gmail.com 4
public int Var
{
get { return var; }
set { var = value; }
}
Andrey Gladky
KspDevelop@gmail.com 5
Демонстрація
Приклади використання властивостей
Розглянемо наступний приклад. В ньому відображений клас
Employee з чотирма приватними полями, що позначають ім’я,
прізвище, вік і зарплату співробітника. Клас також включає
перевантажений конструктор з параметрами і без параметрів. Для
кожного із полів класу передбачено властивість з двома
аксесорами. У властивостях реалізована додаткова перевірка
заданих значень. Ім’я та прізвища приводяться до верхнього
регістру, вік перевіряється на приналежність інтервалу
допустимих значень, зарплата не може бути від’ємною
величиною. Перевантажений метод ToString() дозволяє
роздрукувати стан об’єкта.
Andrey Gladky
KspDevelop@gmail.com 6
Andrey Gladky
KspDevelop@gmail.com 7
Демонстрація
Поняття індексатора
Ще одна рідкість мови C#, що представляє собою одночасно спосіб
перевантаження оператора [ ] (але без ключового слова operator) і
різновид властивості (ще її називають, властивість з параметрами).
Індексатори застосовуються для доступу до одних об’єктів так, наче вони
являються елементами класу користувацької колекції, а з іншої, наче вони
і є та сама колекція.
Синтаксис оголошення індексатора наступний
 Тип – тип об’єктів колекції
 This – посилання на об’єкт в якому з'являється індексатор
 Тип аргументу – представляє індекс об’єкта в колекції, індекс не
обов’язково цілочисельний, і може бути будь якого типу
 В кожного індексатора повинен бути як мінімум один аргумент, але їх
може бути і більше
Andrey Gladky
KspDevelop@gmail.com 8
тип this[тип аргументу] {get; set; }
Створення одновимірного індексатора
Магазин займається реалізацією ноутбуків.
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 9
Створення багатовимірного індексатора
Клас контейнер містить в області поля масив з більше ніж одним
виміром.
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 10
Перевантаження індексатора
Параметр індексатора може бути будь яким типом
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 11
 У класі Indexer визначити індексатор для
початкового масиву. Вивести в програмі на екран
елементи масиву через індексатор. Додати в Indexer
ще один масив і визначити індексатор і для нього.
Вивести на екран значення елементів другого масиву
через індексатор. Другий масив ініціалізувати при
описі ( тобто НЕ в конструкторі).
Andrey Gladky
KspDevelop@gmail.com 12

More Related Content

What's hot

12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 

What's hot (11)

System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
 

Similar to Net framework і c# module 8

Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
ssuserf57884
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 

Similar to Net framework і c# module 8 (20)

Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
 
Net framework і c# module 11
Net framework і c# module 11Net framework і c# module 11
Net framework і c# module 11
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
 
змінна введення виведення даних
змінна введення виведення данихзмінна введення виведення даних
змінна введення виведення даних
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
 
7_1611.pptx
7_1611.pptx7_1611.pptx
7_1611.pptx
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Phpunit
PhpunitPhpunit
Phpunit
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
опорні схеми
опорні схемиопорні схеми
опорні схеми
 
Net framework і c# module 3
Net framework і c# module 3Net framework і c# module 3
Net framework і c# module 3
 
08 Templates
08 Templates08 Templates
08 Templates
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
Net framework і c# module 13
Net framework і c# module 13Net framework і c# module 13
Net framework і c# module 13
 
DAL
DALDAL
DAL
 

More from Andrii Hladkyi (19)

Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 

Net framework і c# module 8

  • 1. .NET Framework і C# Модуль 8. Властивості та індексатори
  • 2. В цьому модулі:  Що таке властивість;  Синтаксис оголошення властивостей;  Приклад використання властивостей;  Поняття індексатора;  Створення одномірних індексаторів;  Створення багатомірних індексаторів;  Перевантаження індексаторів; 2 Andrey Gladky KspDevelop@gmail.com
  • 3. Що таке властивість  Властивості відносять до групи методів класу.  представляють собою метод, який забезпечує як можливість присвоєння значень приватним даним класу, так і зчитування їх значень за необхідністю.  Основою властивості являється поле  Властивість виглядає як поле, веде себе як метод  Призначення властивості – можливість приховати особливості реалізації класу  Властивості мають бути публічними Andrey Gladky KspDevelop@gmail.com 3
  • 4. Синтаксис оголошення властивостей  get – для повернення значення  set – для присвоєння значення  value – містить значення що присвоюється  В get і set можна виконувати будь який набір команд  Типи поля і властивості можуть не співпадати Andrey Gladky KspDevelop@gmail.com 4 public int Var { get { return var; } set { var = value; } }
  • 6. Приклади використання властивостей Розглянемо наступний приклад. В ньому відображений клас Employee з чотирма приватними полями, що позначають ім’я, прізвище, вік і зарплату співробітника. Клас також включає перевантажений конструктор з параметрами і без параметрів. Для кожного із полів класу передбачено властивість з двома аксесорами. У властивостях реалізована додаткова перевірка заданих значень. Ім’я та прізвища приводяться до верхнього регістру, вік перевіряється на приналежність інтервалу допустимих значень, зарплата не може бути від’ємною величиною. Перевантажений метод ToString() дозволяє роздрукувати стан об’єкта. Andrey Gladky KspDevelop@gmail.com 6
  • 8. Поняття індексатора Ще одна рідкість мови C#, що представляє собою одночасно спосіб перевантаження оператора [ ] (але без ключового слова operator) і різновид властивості (ще її називають, властивість з параметрами). Індексатори застосовуються для доступу до одних об’єктів так, наче вони являються елементами класу користувацької колекції, а з іншої, наче вони і є та сама колекція. Синтаксис оголошення індексатора наступний  Тип – тип об’єктів колекції  This – посилання на об’єкт в якому з'являється індексатор  Тип аргументу – представляє індекс об’єкта в колекції, індекс не обов’язково цілочисельний, і може бути будь якого типу  В кожного індексатора повинен бути як мінімум один аргумент, але їх може бути і більше Andrey Gladky KspDevelop@gmail.com 8 тип this[тип аргументу] {get; set; }
  • 9. Створення одновимірного індексатора Магазин займається реалізацією ноутбуків. Демонстрація Andrey Gladky KspDevelop@gmail.com 9
  • 10. Створення багатовимірного індексатора Клас контейнер містить в області поля масив з більше ніж одним виміром. Демонстрація Andrey Gladky KspDevelop@gmail.com 10
  • 11. Перевантаження індексатора Параметр індексатора може бути будь яким типом Демонстрація Andrey Gladky KspDevelop@gmail.com 11
  • 12.  У класі Indexer визначити індексатор для початкового масиву. Вивести в програмі на екран елементи масиву через індексатор. Додати в Indexer ще один масив і визначити індексатор і для нього. Вивести на екран значення елементів другого масиву через індексатор. Другий масив ініціалізувати при описі ( тобто НЕ в конструкторі). Andrey Gladky KspDevelop@gmail.com 12