За въпроси: 02 468 29 53, 02 971 83 90
ОБЕКТНО-ОРИЕНТИРАНО ПРОГРАМИРАНЕ
Васил Тотев, Ива Костадинова
Част 3
София • 2020
Предговор
Един от най-важните аспекти на ученето е упражняването и прилагане на преподаденото. Няма как да се научите да карате ко-лело, ако не се качите на колелото. По същия начин - няма как да се научите да програмирате, без да напишете и тествате програм-ния код. Всеки един успешен курс на обучение трябва да включва както теоретичен компонент, така и практически елементи.
В настоящия учебник са включени и теоретична част, и прак-тически задачи. За по-добро усвояване на изложения материал се изисква внимателно и многократно повторение на разгледаните за-дачи. Противно на мнението на някои обучаеми, че тези дейности са „упражнения за писане“, поставените задачи са мястото, където имате възможност да направите теорията конкретна и където се случва истинската симулация на понятията. Добре би било да напра-вите опити и да промените кода, за да разберете до какви резултати ще доведе това. Някои от най-добре усвоените знания се случват, когато обучаемите „оцветяват“ извън програмния код.
В тази трета част са включени теми, които разширяват тема-тиката и знанията на обучаемите. Усвояването на темите и примери-те в тях ще ви помогне да усъвършенствате писането на код и да из-ползвате системни класове от библиотеките на .NET и конкретно за C#. Знанията и уменията, които ще придобиете ще обогатят позна-ване на особеностите на обектно-ориентираното програмиране.
В учебния материал е използвана терминология на английски език с цел по-точно разбиране на смисъла на термините и определе-нията. Това е направено и с разбирането, че без да се владее анг-лийски език на сравнително добро ниво е трудно да се изградят зна-ния и умения на нивото на сложност на предлагания в учебника ма-териал.
Учебникът е предназначен за студенти, изучаващи дисципли-ната Обектно-ориентирано програмиране в Университета по библиотекознание и информационни технологии. Може да се изпол-зва и от докторанти и от всички желаещи да изучават програмния език С#.
ПРЕДГОВОР
ГЛАВА 1. ОБРАБОТКА НА ИЗКЛЮЧЕНИЯ (EXCEPTIONS)
1.1. Какво е изключение? Същност
1.2. Грешки и изключения
1.3. Грешките и изключенията като обекти
1.4. Йерархия на изключенията
1.4.1. Важни класове на изключения
1.4.2. Разлика между изключение на системно ниво и изключение на ниво приложение в C#
1.4.3. Създаване на персонализиран (клас наследник) Exception клас в C#
1.5. Изключенията в .NET
1.6. Управление на изключения
1.6.1. Прихващане на изключения
1.6.2. Освобождаване на ресурси
1.7. Задачи за самоконтрол
ГЛАВА 2. СИМВОЛНИ НИЗОВЕ
2.1. Същност на символния низ (стринг). Клас System.String
2.2. Деклариране и инициализация на променлива от тип string
2.3. Операции с променливи от тип string
2.3.1. Сравнение за еднаквост
2.3.2. Сравнение по азбучен ред
2.3.3. Сравнение чрез операторите == и !=
2.3.4. Долепване на низове (конкатенация)
2.3.5. Преминаване към главни и малки букви
2.4. Операции с поднизове
2.4.1. Търсене в друг низ с метода IndexOf()
2.4.2. Извличане на част от низ
2.4.3. Разцепване/разделяне на низ
2.4.4. Замяна на подниз с друг
2.4.5. Премахване на подниз с друг
2.4.6. Премахване на символи в началото и в края на низ
2.5. Форматиране на низове
2.5.1. Методът ToString()
2.5.2. Методът String.Format()
2.5.3. Методът GetHashCode()
2.6. Класът StringBuilder
2.6.1. Проблемът на string!?
2.6.2. Отново за съединяването на низове
2.6.3. StringBuilder - използване
2.6.4. StringBuilder - методи
2.6.5. Примери с част от методите
2.6.6. Упражнение
2.7. Задачи за самоконтрол
ГЛАВА 3. РАБОТА С ТЕКСТОВИ ФАЙЛОВЕ В C#
3.1. Потоци (streams)
3.2. Потоци - особености
3.3. Потоци - основни операции
3.4. Потоци - C# класове
3.5. Четене на текстов файл - класът StreamReader
3.5.1. Отваряне на текстов файл за четене
3.5.2. Отваряне на файл със задаване на кодиране
3.5.3. Четене на текстов файл - пример
3.5.4. Писане в текстов файл - класът StreamWriter
3.6. Обработка на изключения (грешки)
3.7. Примери и задачи
3.8. Задачи за самоконтрол
ГЛАВА 4. ДРУГИ ТИПОВЕ ДАННИ И ВЪЗМОЖНОСТИ В C#
4.1. Struct (структура)
4.2. Enumeration types - enum (изброими типове)
4.3. C# - Tuple и ValueTuple
4.3.1. C# - Tuple
4.3.2. C# - ValueTuple
4.4. C# - Анонимни типове (anonymous types)
4.5. C# - Разширяващи методи (extension methods)
4.6. Индексатори (C# - Indexers)
4.7. Задачи за самоконтрол
ЛИТЕРАТУРА