1. .NET Framework і C#
module 1. Основи C#
Andrey Gladky
KspDevelop@gmail.co
m 1
2. В цьому уроці ви:
взнаєте про платформу .NET і мову C#;
познайомитесь з базовим синтаксисом мови;
взнаєте про змінні, типи і операції над ними;
взнаєте про приведення типів в C#;
взнаєте про літерали;
взнаєте про розгалуження і цикли;
отримаєте базові знання про об’єкти і класи;
створите най простішу програму
2
Andrey Gladky
KspDevelop@gmail.com
11. Змінні
Змінна – логічна комірка
Змінна зберігає інформацію
Має визначений тип
Види:
• Типи значень
• Типи посилань
11
Andrey Gladky
KspDevelop@gmail.com
12. Типи значень
Структури
• Числові типи
• Символьні типи
• Логічні типи
• Користувацькі структури
• Перерахування
12
Andrey Gladky
KspDevelop@gmail.com
15. Типи даних для чисел з плаваючою
комою
Andrey Gladky
KspDevelop@gmail.com 15
16. Основні типи значень
16
Тип Опис
bool Логічний оператор. Може приймати значення “істина” (true) і “хибне”
(false).
byte Займає в пам’яті один байт. Може зберігати в себе число в діапазоні 0-254
char Зберігає в себе один текстовий символ.
double Тип з плаваючою комою подвійної точності. Приймає значення в діапазоні
±5.0 × 10-324 - ±1.7 × 10308, має точність 15, 16 знаків після коми.
enum Тип перерахування. Визначається користувачем. Містить в собі задану
кількість різних значень, які потім можуть приймати змінні цього типу.
float Число з плаваючою комою. Приймає значення в діапазоні ±1.5 × 10-45 - ±3.4
× 1038, має точність 7 знаків після коми.
int Ціле число. Може приймати значення в діапазоні -2 147 483 648 - 2 147 483
647.
struct Структура – тип даних, який може зберігати в собі змінні, методи,
конструктори, тобто володіє всі властивостями об’єкта, однак являється
типом значення.
Andrey Gladky
KspDevelop@gmail.com
17. Типи посилань
17
Змінна 1
Змінна 3
Змінна 2Значення 1
Значення 2
Значення 3
Значення 4
Значення 5
Значення 6
Andrey Gladky
KspDevelop@gmail.co
m
18. Символьні типи
Тип даних char використовується для представлення
символьної інформації у форматі Unicode
Деякі корисні методи
Andrey Gladky
KspDevelop@gmail.co
m 18
20. Інші типи даних
Серед вище перерахованих типів даних в .Net Framework
передбачені такі типи як object i string.
Тип даних string (.Net Class: System.String) представляє
собою колекцію Unicode символів.
Клас String містить сукупність наступних
статичних методів:
• Compare – порівнює два рядки передані в якості
аргументів;
• CompareOrdinal -- порівнює два рядки передані в якості
аргументів з урахуванням регістру;
• Concat – повертає результат об’єднання масиву рядків;
• Copy – створює новий екземпляр рядка;
• Equals – порівнює значення двох рядків;
• IsNullOrEmpty -- визначає являється рядок пустим або
еквівалентним Null.
Andrey Gladky
KspDevelop@gmail.co
m 20
21. Нестандартні методи
• Clone – повертає посилання на новий екземпляр рядка;
• Contains – визначає чи містить поточний рядок вказане
в параметрах значення;
• CopyTo – копіює поточний рядок у вказаний масив
символів;
• EndsWith – визначає чи закінчується поточний рядок
вказаним значенням;
• Insert – вставляє під рядок у вказану позицію в поточний
рядок;
• Remove – видаляє з поточного рядка всі входження
вказаного під рядка;
• Replace – замінює вказаний під рядок новим під рядком;
• Split – ділить рядок на масив рядків, основуючись на
переданому масиві розділювачів(сепароторів);
Andrey Gladky
KspDevelop@gmail.co
m 21
22. • StartsWith – визначає чи починається поточний рядок з
вказаного під рядка;
• Substring – повертає вказаний під рядок поточного рядка;
• ToLower – переводить поточний рядок в нижній регістр;
• ToUpper – переводить рядок в верхній регістр;
• Trim – видаляє пробільні символи з обох боків;
• TrimEnd – видаляє пробіли в кінці рядка;
• TrimStart – видаляє пробіли на початку рядка
Andrey Gladky
KspDevelop@gmail.com 22
23. Тип object
Тип даних object (.NET Class: System.Object)
являється базовим для всіх типів даних і має 5
методів:
• ToString ;
• GetType;
• Equals;
• ReferenceEquals;
• GetHashCode.
Andrey Gladky
KspDevelop@gmail.co
m 23
25. Операції над змінними
Присвоєння (=)
Арифметичні операції (+, -, *, /)
• Комбіновані (+=, -=, *=, /=)
Логічні операції
Andrey Gladky
KspDevelop@gmail.com 25
26. Логічні операції
Операція Опис
|| Логічне “або”. Повертає true , якщо хоча б один із операндів
дорівнює true.
&& Логічне “і”. Повертає true лише тоді, коли всі операнди
дорівнюють true, інакше повертає false
== Операція порівняння на рівність. Порівнює дві змінні одного
типу і повертає true, якщо вони рівні.
!= Операція порівняння на нерівність. Порівнює дві змінні одного
типу і повертає true, якщо вони нерівні.
> Операція порівняння “більше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва більша правої.
< Операція порівняння “менше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва менша правої.
>= Операція порівняння “більше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва більша або рівна правій.
<= Операція порівняння “менше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва менша або рівна правій.
Andrey Gladky
KspDevelop@gmail.com 26
27. Приведення типів
Автоматичне (не явне) приведення типів відбувається при
наступних умовах:
два типи сумісні
діапазон представлення чисел цільового типу більший, ніж у вихідного типу
Явне приведення не сумісних типів
Роль класу System.Convert()
Andrey Gladky
KspDevelop@gmail.com 27
(цільовий_тип) вираз
byte sum =
Convert.ToByte(var1 + var2)
31. Overflow і underflow
Ключові слова:
• checked
• unchecked
Andrey Gladky
KspDevelop@gmail.co
m 31
32. Літерали в C#
Літерали – це фіксовані значення, які представленні
в зрозумілій формі. Всі літерали мають мати тип.
Для явної специфікацій типу даних, літералу в С#
передбачені спеціальні суфікси:
об’явлення з суфіксом “L” буде мати тип long;
з суфіксом “F” буде мати тип float;
з суфіксом “D” буде мати тип double;
з суфіксом “M” буде мати тип decimal;
суфікс “U” робить число без знаковим.
Andrey Gladky
KspDevelop@gmail.com 32
34. Літерали як керуючі символи
Використовується для форматування тексту
Andrey Gladky
KspDevelop@gmail.co
m 34
Літерал Дія
a Звуковий сигнал
b Повернення на одну позицію
f Перехід на початок наступної сторінки
n Новий рядок
r Повернення каретки
t Горизонтальна табуляція
v Вертикальна табуляція
0 Нуль-символ (символ кінця рядка)
’ Одинарні лапки
” Подвійні лапки
Зворотній слеш
35. Умовні оператори
Виконують або одну або іншу дію, в залежності від
умови
Види
• if-else
• switch
Andrey Gladky
KspDevelop@gmail.co
m 35
37. if-else
Починається з if
Умова в дужках
Умова рівна true – виконуємо блок if
Умова рівна false – виконуємо блок else
Декілька дій заключають в {i}
Andrey Gladky
KspDevelop@gmail.com 37
38. switch
Синтаксис:
Andrey Gladky
KspDevelop@gmail.com 38
С# Сенс
switch (умова)
{
case [варіант 1]:
[вираз 1]
break;
case [варіант 2]:
case [варіант 3]:
[вираз 2]
break;
default:
[вираз 3]
break;
}
вибрати (умова) з
{
значення [варіант 1]:
[вираз 1]
стоп;
значення [варіант 2]:
значення [варіант 3]:
[вираз 2]
стоп;
[нічого з попереднього]:
[вираз 3]
стоп;
}
39. switch
Починається з switch
Умова в дужках (і) – будь яка змінна
Варіанти починаються з case
Можна об’єднати варіанти
Після кожного варіанту – brake
Дія за замовчуванням – default
Andrey Gladky
KspDevelop@gmail.com 39
40. Цикли
Використовуються для циклічного повторення
послідовності дій
Види:
• for
• foreach
• while
Andrey Gladky
KspDevelop@gmail.com 40
41. Цикл for
Andrey Gladky
KspDevelop@gmail.com 41
[операція 1] – 1 раз на початку
[умова] – перевірка значення лічильника
[тіло циклу] – виконується n-раз поки умова циклу
істина
[операція 2] – після кожної ітерації циклу
continue – для переривання і продовження
break – для дострокового виходу з циклу
Застерігайтесь зациклювання
for ([операція 1]; [умова]; [операція 2])
{
[тіло циклу]
}
42. Цикл foreach
Цикл foreach служить для циклічного звернення до
елементів колекції, що представляє собою групу
об’єктів.
Andrey Gladky
KspDevelop@gmail.com 42
foreach (тип ім’я_змінної_цикла in колекція)
{
[тіло циклу]
}
43. Цикл while
Виконується поки умова істина
Виконається хоча б один раз
Andrey Gladky
KspDevelop@gmail.com 43
while (умова)
{
[вираз тіла циклу]
}
do
{
[вираз тіла циклу]
}
while (умова);
44. Класи і об’єкти
ООП – основа .Net Framework
Об’єкт екземпляр класу
Весь функціонал програми – класи і об’єкти
Клас:
• Методи
• Властивості
• Події
Рівні видимості:
• public
• protected
• private
Andrey Gladky
KspDevelop@gmail.com 44
45. Простір імен
Сукупність класів
Зручні для групування
Використовуйте using для підключення просторів
імен
Основа – System
Andrey Gladky
KspDevelop@gmail.com 45
46. Завдання
Розробити консольний додаток:
◦ Запитати ім’я користувача і пароль (зберегти у відповідних
змінних)
◦ Для чотирьох місяців ввести прибуток компанії (місяць -
дохід)
◦ Посортувати рахунки по зростанню
◦ Ще раз запитати ім’я користувача і пароль
◦ Якщо введені дані вірні, вивести на консоль сортований
список доходів відповідно до місяця
◦ По завершенню вивести середнє значення доходу
Andrey Gladky
KspDevelop@gmail.com 46