Об’єктно-орієнтоване програмування

Содержание

Слайд 2

Шилдт Герберт - C# 4.0 полное руководство – 2011 Эндрю Троелсен

Шилдт Герберт - C# 4.0 полное руководство – 2011
Эндрю Троелсен "Язык программирования

C# 5.0 и платформа .NET 4.5" – 2013
Стиллмен, Дж. Грин Изучаем C#. 3-е изд – 2017
Джозеф Албахари C# 6.0. Справочник. Полное описание языка – 2017

ЛІТЕРАТУРА

Слайд 3

Узагальнені та неузагальнені колекції Види класів колекцій Навчальні питання

Узагальнені та неузагальнені колекції
Види класів колекцій

Навчальні питання

Слайд 4

Класи колекції Щоб допомогти в подоланні обмежень простого масиву, бібліотеки базових

Класи колекції

Щоб допомогти в подоланні обмежень простого масиву, бібліотеки базових класів

.NET поставляються з декількома просторами імен, що містять класи колекцій
Класи колекції поділяються на:
неузагальнені колекції (що в основному знаходяться в просторі імен System.Collections)
узагальнені колекції (що в основному знаходяться в просторі імен System.Collections.Generic)
Слайд 5

Класи колекції

Класи колекції

Слайд 6

Класи колекції

Класи колекції

Слайд 7

Черга Черга (Queue) – колекція, в якій елементи обробляються за схемою

Черга

Черга (Queue) – колекція, в якій елементи обробляються за схемою "перший

увійшов, перший вийшов" (FIFO)
У .NET є неузагальнений клас Queue і узагальнений клас Queue у просторі імен
Слайд 8

ЧЕРГА 4 3 2 1 IN 1 2 3 4 OUT QUEUE – FIFO

ЧЕРГА

4

3

2

1

IN

1

2

3

4

OUT

QUEUE – FIFO

Слайд 9

Черга Queue peopleQ = new Queue (); peopleQ.Enqueue(new Person { FirstName

Черга

Queue peopleQ = new Queue();
peopleQ.Enqueue(new Person { FirstName = "Homer", Age

= 47 });
peopleQ.Enqueue(new Person { FirstName = "Marge", Age = 45 });
peopleQ.Enqueue(new Person { FirstName = "Lisa", Age = 9 });
Console.WriteLine($"{peopleQ.Peek()} is first in line!");
// // Видалити усіх з черги.
GetCoffee(peopleQ.Dequeue());
GetCoffee(peopleQ.Dequeue());
GetCoffee(peopleQ.Dequeue());
try{
GetCoffee(peopleQ.Dequeue());
}
catch (InvalidOperationException e){
Console.WriteLine($"Error! {e.Message}");
}
Слайд 10

Стек Стек (Stack) - це контейнер, в якому елемент, доданий до стека останнім, читається першим (LIFO)

Стек

Стек (Stack) - це контейнер, в якому елемент, доданий до стека

останнім, читається першим (LIFO)
Слайд 11

Стек 4 3 2 1 IN OUT STACK – LIFO

Стек

4

3

2

1

IN

OUT

STACK – LIFO

Слайд 12

Стек Stack alphabet = new Stack (); alphabet.Push("A"); alphabet.Push("B"); alphabet.Push("C"); Console.WriteLine("Перша

Стек

Stack alphabet = new Stack();
alphabet.Push("A");
alphabet.Push("B");
alphabet.Push("C");
Console.WriteLine("Перша iтерацiя:");
foreach (string item in alphabet){
Console.Write(item);
}
Console.WriteLine("\nДруга iтерацiя:

");
while (alphabet.Count > 0){
Console.Write(alphabet.Pop());
}
Слайд 13

Двозв'язний список Клас LinkedList – двозв'язний список, в якому кожен елемент

Двозв'язний список

Клас LinkedList – двозв'язний список, в якому кожен елемент посилається

на наступний і попередній

First

Last

Previous

Next

Value

Previous

Next

Value

Previous

Next

Value

LinkedListNode

Слайд 14

Двозв'язний список

Двозв'язний список

Слайд 15

Двозв'язний список Елементи узагальнених типів працюють типом заданим при ініціалізації

Двозв'язний список

Елементи узагальнених типів працюють типом
заданим при ініціалізації

Слайд 16

Двозв'язний список var list = new LinkedList (); LinkedListNode vasj =

Двозв'язний список

var list = new LinkedList();
LinkedListNode vasj = list.AddLast(new Person

{FirstName= "Vasj", Age = 22});
var petj = list.AddFirst(new Person {FirstName ="Petj", Age = 23});
var kolj = list.AddBefore(petj,new Person{FirstName ="Kolj“
,Age= 19});
foreach (var pers in list){
Console.WriteLine(pers);
}
Console.WriteLine($"Before {vasj.Value}");
Console.WriteLine(vasj.Previous.Value);
Слайд 17

Набори Набори HashSet та SortedSet містять тільки унікальні об’єкти Унікальність визначається

Набори

Набори HashSet та SortedSet містять тільки унікальні об’єкти
Унікальність визначається за хеш-кодом

об’єктів

var set = new HashSet();
set.Add(new Person {FirstName = "Vasj", Age=22});
set.Add(new Person { FirstName = "Kolj", Age = 21 });
set.Add(new Person { FirstName = "Vasj", Age = 22 });
set.Add(new Person { FirstName = "Petj", Age = 20 });
set.Add(new Person { FirstName = "Kolj", Age = 21 });
foreach (var pers in set){
Console.WriteLine(pers);
}

Слайд 18

Набори

Набори

Слайд 19

Слайд 20

Набори

Набори

Слайд 21

Словники Словники – колекції в яких кожен елемент є парою ключ-значення

Словники

Словники – колекції в яких кожен елемент є парою ключ-значення

Слайд 22

Словники Ключ Індекс Значення

Словники

Ключ

Індекс

Значення

Слайд 23

Словники

Словники

Слайд 24