2. В цьому уроці ви:
взнаєте про платформу .NET і мову C#;
познайомитесь з базовим синтаксисом мови;
взнаєте про змінні, типи і операції над ними;
взнаєте про приведення типів в C#;
взнаєте про літерали;
взнаєте про розгалуження і цикли;
отримаєте базові знання про об’єкти і класи;
створите най простішу програму
2
Andrii Hladky
trilobt@gmail.com
5. Базовий синтаксис
Вирази:
• Визначення змінних
• Операції присвоєння
• Виклик функції
• Закінчуються на ‘;’
• Об'єднуються за допомогою {i}
• Коментарі:
• Однорядкові - //
• Багаторядкові - /* */
• Чутливі до регістру
5
Andrii Hladky
trilobt@gmail.com
6. Змінні
Змінна – логічна комірка
Змінна зберігає інформацію
Має визначений тип
Види:
• Типи значень
• Типи посилань
6
Andrii Hladky
trilobt@gmail.com
7. Типи значень
Структури
• Числові типи
• Символьні типи
• Логічні типи
• Користувацькі структури
• Перерахування
7
Andrii Hladky
trilobt@gmail.com
9. Типи значень
Andrii Hladky
trilobt@gmail.com 9
Type Description Range Suffix
byte 8-bit unsigned integer 0 to 255
sbyte 8-bit signed integer -128 to 127
short 16-bit signed integer -32,768 to 32,767
ushort 16-bit unsigned integer 0 to 65,535
int 32-bit signed integer -2,147,483,648
to
2,147,483,647
uint 32-bit unsigned integer 0 to 4,294,967,295 u
long 64-bit signed integer -9,223,372,036,854,775,808
to
9,223,372,036,854,775,807
l
ulong 64-bit unsigned integer 0 to 18,446,744,073,709,551,615 ul
float 32-bit Single-precision floating point type -3.402823e38 to 3.402823e38 f
double 64-bit double-precision floating point type -1.79769313486232e308 to
1.79769313486232e308
d
decimal 128-bit decimal type for financial and monetary calculations (+ or -)1.0 x 10e-28
to
7.9 x 10e28
m
char 16-bit single Unicode character Any valid character, e.g. a,*,
x0058 (hex), oru0058 (Unicode)
bool 8-bit logical true/false value True or False
object Base type of all other types.
string A sequence of Unicode characters
DateTime Represents date and time 0:00:00am 1/1/01
to
11:59:59pm 12/31/9999
10. Alias vs .NET Type
Andrii Hladky
trilobt@gmail.com 10
Alias .NET Type Type
byte System.Byte struct
sbyte System.SByte struct
int System.Int32 struct
uint System.UInt32 struct
short System.Int16 struct
ushort System.UInt16 struct
long System.Int64 struct
ulong System.UInt64 struct
float System.Single struct
double System.Double struct
char System.Char struct
bool System.Boolean struct
object System.Object Class
string System.String Class
decimal System.Decimal struct
DateTime System.DateTime struct
11. Основні типи значень
11
Тип Опис
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 Структура – тип даних, який може зберігати в собі змінні, методи,
конструктори, тобто володіє всі властивостями об’єкта, однак являється
типом значення.
Andrii Hladky
trilobt@gmail.com
12. Типи посилань
12
Змінна 1
Змінна 3
Змінна 2
Значення 1
Значення 2
Значення 3
Значення 4
Значення 5
Значення 6
Andrii Hladky
trilobt@gmail.com
13. Інші типи даних
Серед вище перерахованих типів даних в .Net Framework
передбачені такі типи як object i string.
Тип даних string (.Net Class: System.String) представляє
собою колекцію Unicode символів.
Клас String містить сукупність наступних
статичних методів:
• Compare – порівнює два рядки передані в якості
аргументів;
• CompareOrdinal -- порівнює два рядки передані в якості
аргументів з урахуванням регістру;
• Concat – повертає результат об’єднання масиву рядків;
• Copy – створює новий екземпляр рядка;
• Equals – порівнює значення двох рядків;
• IsNullOrEmpty -- визначає являється рядок пустим або
еквівалентним Null.
Andrii Hladky
trilobt@gmail.com 13
14. Нестандартні методи
• Clone – повертає посилання на новий екземпляр рядка;
• Contains – визначає чи містить поточний рядок вказане
в параметрах значення;
• CopyTo – копіює поточний рядок у вказаний масив
символів;
• EndsWith – визначає чи закінчується поточний рядок
вказаним значенням;
• Insert – вставляє під рядок у вказану позицію в поточний
рядок;
• Remove – видаляє з поточного рядка всі входження
вказаного під рядка;
• Replace – замінює вказаний під рядок новим під рядком;
• Split – ділить рядок на масив рядків, основуючись на
переданому масиві розділювачів(сепароторів);
Andrii Hladky
trilobt@gmail.com 14
15. • StartsWith – визначає чи починається поточний рядок з
вказаного під рядка;
• Substring – повертає вказаний під рядок поточного рядка;
• ToLower – переводить поточний рядок в нижній регістр;
• ToUpper – переводить рядок в верхній регістр;
• Trim – видаляє пробільні символи з обох боків;
• TrimEnd – видаляє пробіли в кінці рядка;
• TrimStart – видаляє пробіли на початку рядка
Andrii Hladky
trilobt@gmail.com 15
16. Тип object
Тип даних object (.NET Class: System.Object)
являється базовим для всіх типів даних і має 5
методів:
• ToString ;
• GetType;
• Equals;
• ReferenceEquals;
• GetHashCode.
Andrii Hladky
trilobt@gmail.com 16
17. Операції над змінними
Присвоєння (=)
Арифметичні операції (+, -, *, /)
• Комбіновані (+=, -=, *=, /=)
Логічні операції
Andrii Hladky
trilobt@gmail.com 17
18. Логічні операції
Операція Опис
|| Логічне “або”. Повертає true , якщо хоча б один із операндів
дорівнює true.
&& Логічне “і”. Повертає true лише тоді, коли всі операнди
дорівнюють true, інакше повертає false
== Операція порівняння на рівність. Порівнює дві змінні одного
типу і повертає true, якщо вони рівні.
!= Операція порівняння на нерівність. Порівнює дві змінні одного
типу і повертає true, якщо вони нерівні.
> Операція порівняння “більше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва більша правої.
< Операція порівняння “менше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва менша правої.
>= Операція порівняння “більше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва більша або рівна правій.
<= Операція порівняння “менше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва менша або рівна правій.
Andrii Hladky
trilobt@gmail.com 18
19. Приведення типів
Автоматичне (не явне) приведення типів відбувається при
наступних умовах:
два типи сумісні
діапазон представлення чисел цільового типу більший, ніж у вихідного типу
Явне приведення не сумісних типів
Роль класу System.Convert()
Andrii Hladky
trilobt@gmail.com 19
(цільовий_тип) вираз
byte sum =
Convert.ToByte(var1 + var2)
24. Літерали в C#
Літерали – це фіксовані значення, які представленні
в зрозумілій формі. Всі літерали мають мати тип.
Для явної специфікацій типу даних, літералу в С#
передбачені спеціальні суфікси:
об’явлення з суфіксом “L” буде мати тип long;
з суфіксом “F” буде мати тип float;
з суфіксом “D” буде мати тип double;
з суфіксом “M” буде мати тип decimal;
суфікс “U” робить число без знаковим.
Andrii Hladky
trilobt@gmail.com 24
25. Літерали як керуючі символи
Використовується для форматування тексту
Andrii Hladky
trilobt@gmail.com 25
Літерал Дія
a Звуковий сигнал
b Повернення на одну позицію
f Перехід на початок наступної сторінки
n Новий рядок
r Повернення каретки
t Горизонтальна табуляція
v Вертикальна табуляція
0 Нуль-символ (символ кінця рядка)
’ Одинарні лапки
” Подвійні лапки
Зворотній слеш
26. Умовні оператори
Виконують або одну або іншу дію, в залежності від
умови
Види
• if-else
• switch
Andrii Hladky
trilobt@gmail.com 26
28. if-else
Починається з if
Умова в дужках
Умова рівна true – виконуємо блок if
Умова рівна false – виконуємо блок else
Декілька дій заключають в {i}
Andrii Hladky
trilobt@gmail.com 28
29. switch
Синтаксис:
Andrii Hladky
trilobt@gmail.com 29
С# Сенс
switch (умова)
{
case [варіант 1]:
[вираз 1]
break;
case [варіант 2]:
case [варіант 3]:
[вираз 2]
break;
default:
[вираз 3]
break;
}
вибрати (умова) з
{
значення [варіант 1]:
[вираз 1]
стоп;
значення [варіант 2]:
значення [варіант 3]:
[вираз 2]
стоп;
[нічого з попереднього]:
[вираз 3]
стоп;
}
30. switch
Починається з switch
Умова в дужках (і) – будь яка змінна
Варіанти починаються з case
Можна об’єднати варіанти
Після кожного варіанту – brake
Дія за замовчуванням – default
Andrii Hladky
trilobt@gmail.com 30
31. Цикли
Використовуються для циклічного повторення
послідовності дій
Види:
• for
• foreach
• while
Andrii Hladky
trilobt@gmail.com 31
32. Цикл for
Andrii Hladky
trilobt@gmail.com 32
[операція 1] – 1 раз на початку
[умова] – перевірка значення лічильника
[тіло циклу] – виконується n-раз поки умова циклу
істина
[операція 2] – після кожної ітерації циклу
continue – для переривання і продовження
break – для дострокового виходу з циклу
Застерігайтесь зациклювання
for ([операція 1]; [умова]; [операція 2])
{
[тіло циклу]
}
33. Цикл foreach
Цикл foreach служить для циклічного звернення до
елементів колекції, що представляє собою групу
об’єктів.
Andrii Hladky
trilobt@gmail.com 33
foreach (тип ім’я_змінної_цикла in колекція)
{
[тіло циклу]
}
34. Цикл while
Виконується поки умова істина
Виконається хоча б один раз
Andrii Hladky
trilobt@gmail.com 34
while (умова)
{
[вираз тіла циклу]
}
do
{
[вираз тіла циклу]
}
while (умова);
35. Класи і об’єкти
ООП – основа .Net Framework
Об’єкт екземпляр класу
Весь функціонал програми – класи і об’єкти
Клас:
• Методи
• Властивості
• Події
Рівні видимості:
• public
• protected
• private
Andrii Hladky
trilobt@gmail.com 35
36. Простір імен
Сукупність класів
Зручні для групування
Використовуйте using для підключення просторів
імен
Основа – System
Andrii Hladky trilobt@gmail.com 36
37. Завдання
Розробити консольний додаток:
◦ Запитати ім’я користувача і пароль (зберегти у відповідних
змінних)
◦ Для чотирьох місяців ввести прибуток компанії (місяць -
дохід)
◦ Посортувати рахунки по зростанню
◦ Ще раз запитати ім’я користувача і пароль
◦ Якщо введені дані вірні, вивести на консоль сортований
список доходів відповідно до місяця
◦ По завершенню вивести середнє значення доходу
Andrii Hladky
trilobt@gmail.com 37