46
.NET Framework і C# module 1. Основи C# Andrey Gladky KspDevelop@gmail. com 1

Net framework і c# lesson1

Embed Size (px)

Citation preview

1

.NET Framework і C#module 1. Основи C#

Andrey Gladky [email protected]

2

В цьому уроці ви:взнаєте про платформу .NET і мову C#;познайомитесь з базовим синтаксисом мови;взнаєте про змінні, типи і операції над ними;взнаєте про приведення типів в C#;взнаєте про літерали;взнаєте про розгалуження і цикли;отримаєте базові знання про об’єкти і класи;створите най простішу програму

Andrey Gladky [email protected]

3

Архітектура .Net.Net Framework

CLR BCL Мови програмування

C# VB.NET

Andrey Gladky [email protected]

CTS CLS

Andrey Gladky [email protected]

4

5

Створення проекту

Andrey Gladky [email protected]

6

Andrey Gladky [email protected]

7

Для мінімального проекту необхідний файл з розширенням *.cs

Andrey Gladky [email protected]

8

Andrey Gladky [email protected]

Для компіляції необхідно натиснути ctrl + F5

9

Базовий синтаксисВирази:• Визначення змінних• Операції присвоєння• Виклик функції

• Закінчуються на ‘;’• Об'єднуються за допомогою {i}• Коментарі:• Однорядкові - //• Багаторядкові - /* */

• Чутливі до регістру

Andrey Gladky [email protected]

10

Базовий синтаксисПриклад:

Andrey Gladky [email protected]

11

ЗмінніЗмінна – логічна коміркаЗмінна зберігає інформаціюМає визначений типВиди:• Типи значень• Типи посилань

Andrey Gladky [email protected]

12

Типи значеньСтруктури• Числові типи• Символьні типи• Логічні типи• Користувацькі структури

• Перерахування

Andrey Gladky [email protected]

13

Ієрархія типів в C#

Andrey Gladky [email protected]

14

Цілі типи даних

Andrey Gladky [email protected]

15

Типи даних для чисел з плаваючою комою

Andrey Gladky [email protected]

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 [email protected]

17

Типи посиланьЗмінна 1

Змінна 3

Змінна 2Значення 1

Значення 2

Значення 3

Значення 4

Значення 5

Значення 6

Andrey Gladky [email protected]

18

Символьні типиТип даних char використовується для представлення

символьної інформації у форматі Unicode

Деякі корисні методи

Andrey Gladky [email protected]

19

Andrey Gladky [email protected]

20

Інші типи данихСеред вище перерахованих типів даних в .Net Framework передбачені такі типи як object i string.Тип даних string (.Net Class: System.String) представляєсобою колекцію Unicode символів.Клас String містить сукупність наступних статичних методів:• Compare – порівнює два рядки передані в якості аргументів;• CompareOrdinal -- порівнює два рядки передані в якості аргументів з урахуванням регістру;• Concat – повертає результат об’єднання масиву рядків;• Copy – створює новий екземпляр рядка;• Equals – порівнює значення двох рядків;• IsNullOrEmpty -- визначає являється рядок пустим або

еквівалентним Null.Andrey Gladky [email protected]

21

Нестандартні методи• Clone – повертає посилання на новий екземпляр рядка;• Contains – визначає чи містить поточний рядок вказанев параметрах значення;• CopyTo – копіює поточний рядок у вказаний масив

символів; • EndsWith – визначає чи закінчується поточний рядок

вказаним значенням;• Insert – вставляє під рядок у вказану позицію в поточнийрядок;• Remove – видаляє з поточного рядка всі входження

вказаного під рядка;• Replace – замінює вказаний під рядок новим під рядком;• Split – ділить рядок на масив рядків, основуючись на

переданому масиві розділювачів(сепароторів);Andrey Gladky [email protected]

22

• StartsWith – визначає чи починається поточний рядок з вказаного під рядка;

• Substring – повертає вказаний під рядок поточного рядка;• ToLower – переводить поточний рядок в нижній регістр;• ToUpper – переводить рядок в верхній регістр;• Trim – видаляє пробільні символи з обох боків;• TrimEnd – видаляє пробіли в кінці рядка;• TrimStart – видаляє пробіли на початку рядка

Andrey Gladky [email protected]

23

Тип objectТип даних object (.NET Class: System.Object)

являється базовим для всіх типів даних і має 5 методів:

• ToString ;• GetType;• Equals;• ReferenceEquals;• GetHashCode.

Andrey Gladky [email protected]

24

Метод ToString()

Andrey Gladky [email protected]

25

Операції над зміннимиПрисвоєння (=)Арифметичні операції (+, -, *, /)• Комбіновані (+=, -=, *=, /=)

Логічні операції

Andrey Gladky [email protected]

26

Логічні операціїОперація Опис

|| Логічне “або”. Повертає true , якщо хоча б один із операндів дорівнює true.

&& Логічне “і”. Повертає true лише тоді, коли всі операнди дорівнюють true, інакше повертає false

== Операція порівняння на рівність. Порівнює дві змінні одного типу і повертає true, якщо вони рівні.

!= Операція порівняння на нерівність. Порівнює дві змінні одного типу і повертає true, якщо вони нерівні.

> Операція порівняння “більше”. Порівнює дві змінні одного типу і повертає true, якщо ліва більша правої.

< Операція порівняння “менше”. Порівнює дві змінні одного типу і повертає true, якщо ліва менша правої.

>= Операція порівняння “більше дорівнює”. Порівнює дві змінні одного типу і повертає true, якщо ліва більша або рівна правій.

<= Операція порівняння “менше дорівнює”. Порівнює дві змінні одного типу і повертає true, якщо ліва менша або рівна правій.

Andrey Gladky [email protected]

27

Приведення типів Автоматичне (не явне) приведення типів відбувається при

наступних умовах: два типи сумісні діапазон представлення чисел цільового типу більший, ніж у вихідного типу

Явне приведення не сумісних типів

Роль класу System.Convert()

Andrey Gladky [email protected]

(цільовий_тип) вираз

byte sum = Convert.ToByte(var1 + var2)

28

Не явне приведення

Andrey Gladky [email protected]

29

Явне приведення

Andrey Gladky [email protected]

30

Клас System.Convert()

Andrey Gladky [email protected]

31

Overflow і underflowКлючові слова: • checked• unchecked

Andrey Gladky [email protected]

32

Літерали в C#Літерали – це фіксовані значення, які представленні

в зрозумілій формі. Всі літерали мають мати тип.

Для явної специфікацій типу даних, літералу в С# передбачені спеціальні суфікси:

об’явлення з суфіксом “L” буде мати тип long; з суфіксом “F” буде мати тип float; з суфіксом “D” буде мати тип double; з суфіксом “M” буде мати тип decimal; суфікс “U” робить число без знаковим.

Andrey Gladky [email protected]

33

Використання літералів

Andrey Gladky [email protected]

34

Літерали як керуючі символиВикористовується для форматування тексту

Andrey Gladky [email protected]

Літерал Дія\a Звуковий сигнал

\b Повернення на одну позицію

\f Перехід на початок наступної сторінки

\n Новий рядок

\r Повернення каретки

\t Горизонтальна табуляція

\v Вертикальна табуляція

\0 Нуль-символ (символ кінця рядка)

\’ Одинарні лапки

\” Подвійні лапки

\\ Зворотній слеш

35

Умовні операториВиконують або одну або іншу дію, в залежності від

умовиВиди• if-else• switch

Andrey Gladky [email protected]

36

if-elseСинтаксис

Andrey Gladky [email protected]

С# Сенсif (умова){ [вираз 1]}else{ [вираз 2]}

якщо (умова){ умова істина}інакше{ умова хибна}

37

if-elseПочинається з ifУмова в дужкахУмова рівна true – виконуємо блок ifУмова рівна false – виконуємо блок elseДекілька дій заключають в {i}

Andrey Gladky [email protected]

38

switchСинтаксис:

Andrey Gladky [email protected]

С# Сенс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 [email protected]

40

ЦиклиВикористовуються для циклічного повторення

послідовності дійВиди:• for• foreach• while

Andrey Gladky [email protected]

41

Цикл for

Andrey Gladky [email protected]

[операція 1] – 1 раз на початку [умова] – перевірка значення лічильника [тіло циклу] – виконується n-раз поки умова циклу

істина [операція 2] – після кожної ітерації циклуcontinue – для переривання і продовженняbreak – для дострокового виходу з циклуЗастерігайтесь зациклювання

for ([операція 1]; [умова]; [операція 2]){ [тіло циклу]}

42

Цикл foreach

Цикл foreach служить для циклічного звернення до елементів колекції, що представляє собою групу об’єктів.

Andrey Gladky [email protected]

foreach (тип ім’я_змінної_цикла in колекція){ [тіло циклу]}

43

Цикл while

Виконується поки умова істина

Виконається хоча б один раз

Andrey Gladky [email protected]

while (умова){ [вираз тіла циклу]}

do{ [вираз тіла циклу] }while (умова);

44

Класи і об’єктиООП – основа .Net FrameworkОб’єкт екземпляр класуВесь функціонал програми – класи і об’єктиКлас:• Методи• Властивості• Події

Рівні видимості:• public• protected• private

Andrey Gladky [email protected]

45

Простір іменСукупність класівЗручні для групуванняВикористовуйте using для підключення просторів

іменОснова – System

Andrey Gladky [email protected]

46

Завдання Розробити консольний додаток:

◦ Запитати ім’я користувача і пароль (зберегти у відповідних змінних)

◦ Для чотирьох місяців ввести прибуток компанії (місяць - дохід)

◦ Посортувати рахунки по зростанню

◦ Ще раз запитати ім’я користувача і пароль

◦ Якщо введені дані вірні, вивести на консоль сортований список доходів відповідно до місяця

◦ По завершенню вивести середнє значення доходуAndrey Gladky [email protected]