.NET Framework & C#
module 1. Огляд платформи
Andrey Gladky
KspDevelop@gmail.co
m 1
В цьому уроці ви:
 взнаєте про платформу .NET і мову C#;
 познайомитесь з базовим синтаксисом мови;
 взнаєте про змінні, типи і операції над ними;
 взнаєте про приведення типів в C#;
 взнаєте про літерали;
 взнаєте про розгалуження і цикли;
 отримаєте базові знання про об’єкти і класи;
 створите най простішу програму
2
Andrey Gladky
KspDevelop@gmail.com
Архітектура .Net
.Net Framework
CLR BCL
Мови
програмування
C# VB.NET
3
Andrey Gladky
KspDevelop@gmail.co
m
CTS CLS
Andrey Gladky KspDevelop@gmail.com 4
Створення проекту
Andrey Gladky
KspDevelop@gmail.com 5
Andrey Gladky
KspDevelop@gmail.com 6
Для мінімального проекту необхідний файл
з розширенням *.cs
Andrey Gladky
KspDevelop@gmail.com 7
Andrey Gladky
KspDevelop@gmail.com 8
Для компіляції необхідно натиснути ctrl + F5
Базовий синтаксис
 Вирази:
• Визначення змінних
• Операції присвоєння
• Виклик функції
• Закінчуються на ‘;’
• Об'єднуються за допомогою {i}
• Коментарі:
• Однорядкові - //
• Багаторядкові - /* */
• Чутливі до регістру
9
Andrey Gladky
KspDevelop@gmail.com
Базовий синтаксис
 Приклад:
10
Andrey Gladky
KspDevelop@gmail.com
Змінні
 Змінна – логічна комірка
 Змінна зберігає інформацію
 Має визначений тип
 Види:
• Типи значень
• Типи посилань
11
Andrey Gladky
KspDevelop@gmail.com
Типи значень
 Структури
• Числові типи
• Символьні типи
• Логічні типи
• Користувацькі структури
• Перерахування
12
Andrey Gladky
KspDevelop@gmail.com
Ієрархія типів в C#
Andrey Gladky
KspDevelop@gmail.com 13
Цілі типи даних
Andrey Gladky
KspDevelop@gmail.com 14
Типи даних для чисел з плаваючою
комою
Andrey Gladky
KspDevelop@gmail.com 15
Основні типи значень
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
Змінна 1
Змінна 3
Змінна 2Значення 1
Значення 2
Значення 3
Значення 4
Значення 5
Значення 6
Andrey Gladky
KspDevelop@gmail.co
m
Символьні типи
 Тип даних char використовується для представлення
символьної інформації у форматі Unicode
Деякі корисні методи
Andrey Gladky
KspDevelop@gmail.co
m 18
Andrey Gladky
KspDevelop@gmail.com 19
Інші типи даних
Серед вище перерахованих типів даних в .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
Нестандартні методи
• Clone – повертає посилання на новий екземпляр рядка;
• Contains – визначає чи містить поточний рядок вказане
в параметрах значення;
• CopyTo – копіює поточний рядок у вказаний масив
символів;
• EndsWith – визначає чи закінчується поточний рядок
вказаним значенням;
• Insert – вставляє під рядок у вказану позицію в поточний
рядок;
• Remove – видаляє з поточного рядка всі входження
вказаного під рядка;
• Replace – замінює вказаний під рядок новим під рядком;
• Split – ділить рядок на масив рядків, основуючись на
переданому масиві розділювачів(сепароторів);
Andrey Gladky
KspDevelop@gmail.co
m 21
• StartsWith – визначає чи починається поточний рядок з
вказаного під рядка;
• Substring – повертає вказаний під рядок поточного рядка;
• ToLower – переводить поточний рядок в нижній регістр;
• ToUpper – переводить рядок в верхній регістр;
• Trim – видаляє пробільні символи з обох боків;
• TrimEnd – видаляє пробіли в кінці рядка;
• TrimStart – видаляє пробіли на початку рядка
Andrey Gladky
KspDevelop@gmail.com 22
Тип object
 Тип даних object (.NET Class: System.Object)
являється базовим для всіх типів даних і має 5
методів:
• ToString ;
• GetType;
• Equals;
• ReferenceEquals;
• GetHashCode.
Andrey Gladky
KspDevelop@gmail.co
m 23
Метод ToString()
Andrey Gladky
KspDevelop@gmail.co
m 24
Операції над змінними
 Присвоєння (=)
 Арифметичні операції (+, -, *, /)
• Комбіновані (+=, -=, *=, /=)
 Логічні операції
Andrey Gladky
KspDevelop@gmail.com 25
Логічні операції
Операція Опис
|| Логічне “або”. Повертає true , якщо хоча б один із операндів
дорівнює true.
&& Логічне “і”. Повертає true лише тоді, коли всі операнди
дорівнюють true, інакше повертає false
== Операція порівняння на рівність. Порівнює дві змінні одного
типу і повертає true, якщо вони рівні.
!= Операція порівняння на нерівність. Порівнює дві змінні одного
типу і повертає true, якщо вони нерівні.
> Операція порівняння “більше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва більша правої.
< Операція порівняння “менше”. Порівнює дві змінні одного типу і
повертає true, якщо ліва менша правої.
>= Операція порівняння “більше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва більша або рівна правій.
<= Операція порівняння “менше дорівнює”. Порівнює дві змінні
одного типу і повертає true, якщо ліва менша або рівна правій.
Andrey Gladky
KspDevelop@gmail.com 26
Приведення типів
 Автоматичне (не явне) приведення типів відбувається при
наступних умовах:
 два типи сумісні
 діапазон представлення чисел цільового типу більший, ніж у вихідного типу
 Явне приведення не сумісних типів
 Роль класу System.Convert()
Andrey Gladky
KspDevelop@gmail.com 27
(цільовий_тип) вираз
byte sum =
Convert.ToByte(var1 + var2)
Не явне приведення
Andrey Gladky
KspDevelop@gmail.com 28
Явне приведення
Andrey Gladky
KspDevelop@gmail.com 29
Клас System.Convert()
Andrey Gladky
KspDevelop@gmail.co
m 30
Overflow і underflow
 Ключові слова:
• checked
• unchecked
Andrey Gladky
KspDevelop@gmail.co
m 31
Літерали в C#
 Літерали – це фіксовані значення, які представленні
в зрозумілій формі. Всі літерали мають мати тип.
 Для явної специфікацій типу даних, літералу в С#
передбачені спеціальні суфікси:
 об’явлення з суфіксом “L” буде мати тип long;
 з суфіксом “F” буде мати тип float;
 з суфіксом “D” буде мати тип double;
 з суфіксом “M” буде мати тип decimal;
 суфікс “U” робить число без знаковим.
Andrey Gladky
KspDevelop@gmail.com 32
Використання літералів
Andrey Gladky
KspDevelop@gmail.c
om 33
Літерали як керуючі символи
 Використовується для форматування тексту
Andrey Gladky
KspDevelop@gmail.co
m 34
Літерал Дія
a Звуковий сигнал
b Повернення на одну позицію
f Перехід на початок наступної сторінки
n Новий рядок
r Повернення каретки
t Горизонтальна табуляція
v Вертикальна табуляція
0 Нуль-символ (символ кінця рядка)
’ Одинарні лапки
” Подвійні лапки
 Зворотній слеш
Умовні оператори
 Виконують або одну або іншу дію, в залежності від
умови
 Види
• if-else
• switch
Andrey Gladky
KspDevelop@gmail.co
m 35
if-else
 Синтаксис
Andrey Gladky
KspDevelop@gmail.co
m 36
С# Сенс
if (умова)
{
[вираз 1]
}
else
{
[вираз 2]
}
якщо (умова)
{
умова істина
}
інакше
{
умова хибна
}
if-else
 Починається з if
 Умова в дужках
 Умова рівна true – виконуємо блок if
 Умова рівна false – виконуємо блок else
 Декілька дій заключають в {i}
Andrey Gladky
KspDevelop@gmail.com 37
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]
стоп;
}
switch
 Починається з switch
 Умова в дужках (і) – будь яка змінна
 Варіанти починаються з case
 Можна об’єднати варіанти
 Після кожного варіанту – brake
 Дія за замовчуванням – default
Andrey Gladky
KspDevelop@gmail.com 39
Цикли
 Використовуються для циклічного повторення
послідовності дій
 Види:
• for
• foreach
• while
Andrey Gladky
KspDevelop@gmail.com 40
Цикл for
Andrey Gladky
KspDevelop@gmail.com 41
 [операція 1] – 1 раз на початку
 [умова] – перевірка значення лічильника
 [тіло циклу] – виконується n-раз поки умова циклу
істина
 [операція 2] – після кожної ітерації циклу
 continue – для переривання і продовження
 break – для дострокового виходу з циклу
 Застерігайтесь зациклювання
for ([операція 1]; [умова]; [операція 2])
{
[тіло циклу]
}
Цикл foreach
 Цикл foreach служить для циклічного звернення до
елементів колекції, що представляє собою групу
об’єктів.
Andrey Gladky
KspDevelop@gmail.com 42
foreach (тип ім’я_змінної_цикла in колекція)
{
[тіло циклу]
}
Цикл while
 Виконується поки умова істина
 Виконається хоча б один раз
Andrey Gladky
KspDevelop@gmail.com 43
while (умова)
{
[вираз тіла циклу]
}
do
{
[вираз тіла циклу]
}
while (умова);
Класи і об’єкти
 ООП – основа .Net Framework
 Об’єкт екземпляр класу
 Весь функціонал програми – класи і об’єкти
 Клас:
• Методи
• Властивості
• Події
 Рівні видимості:
• public
• protected
• private
Andrey Gladky
KspDevelop@gmail.com 44
Простір імен
 Сукупність класів
 Зручні для групування
 Використовуйте using для підключення просторів
імен
 Основа – System
Andrey Gladky
KspDevelop@gmail.com 45
Завдання
 Розробити консольний додаток:
◦ Запитати ім’я користувача і пароль (зберегти у відповідних
змінних)
◦ Для чотирьох місяців ввести прибуток компанії (місяць -
дохід)
◦ Посортувати рахунки по зростанню
◦ Ще раз запитати ім’я користувача і пароль
◦ Якщо введені дані вірні, вивести на консоль сортований
список доходів відповідно до місяця
◦ По завершенню вивести середнє значення доходу
Andrey Gladky
KspDevelop@gmail.com 46

Net framework і c# lesson1

  • 1.
    .NET Framework &C# module 1. Огляд платформи Andrey Gladky KspDevelop@gmail.co m 1
  • 2.
    В цьому уроціви:  взнаєте про платформу .NET і мову C#;  познайомитесь з базовим синтаксисом мови;  взнаєте про змінні, типи і операції над ними;  взнаєте про приведення типів в C#;  взнаєте про літерали;  взнаєте про розгалуження і цикли;  отримаєте базові знання про об’єкти і класи;  створите най простішу програму 2 Andrey Gladky KspDevelop@gmail.com
  • 3.
    Архітектура .Net .Net Framework CLRBCL Мови програмування C# VB.NET 3 Andrey Gladky KspDevelop@gmail.co m CTS CLS
  • 4.
  • 5.
  • 6.
  • 7.
    Для мінімального проектунеобхідний файл з розширенням *.cs Andrey Gladky KspDevelop@gmail.com 7
  • 8.
    Andrey Gladky KspDevelop@gmail.com 8 Длякомпіляції необхідно натиснути ctrl + F5
  • 9.
    Базовий синтаксис  Вирази: •Визначення змінних • Операції присвоєння • Виклик функції • Закінчуються на ‘;’ • Об'єднуються за допомогою {i} • Коментарі: • Однорядкові - // • Багаторядкові - /* */ • Чутливі до регістру 9 Andrey Gladky KspDevelop@gmail.com
  • 10.
  • 11.
    Змінні  Змінна –логічна комірка  Змінна зберігає інформацію  Має визначений тип  Види: • Типи значень • Типи посилань 11 Andrey Gladky KspDevelop@gmail.com
  • 12.
    Типи значень  Структури •Числові типи • Символьні типи • Логічні типи • Користувацькі структури • Перерахування 12 Andrey Gladky KspDevelop@gmail.com
  • 13.
    Ієрархія типів вC# Andrey Gladky KspDevelop@gmail.com 13
  • 14.
    Цілі типи даних AndreyGladky KspDevelop@gmail.com 14
  • 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
  • 19.
  • 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
  • 24.
  • 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)
  • 28.
    Не явне приведення AndreyGladky KspDevelop@gmail.com 28
  • 29.
  • 30.
  • 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
  • 33.
  • 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
  • 36.
    if-else  Синтаксис Andrey Gladky KspDevelop@gmail.co m36 С# Сенс if (умова) { [вираз 1] } else { [вираз 2] } якщо (умова) { умова істина } інакше { умова хибна }
  • 37.
    if-else  Починається зif  Умова в дужках  Умова рівна true – виконуємо блок if  Умова рівна false – виконуємо блок else  Декілька дій заключають в {i} Andrey Gladky KspDevelop@gmail.com 37
  • 38.
    switch  Синтаксис: Andrey Gladky KspDevelop@gmail.com38 С# Сенс 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.com41  [операція 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