SlideShare a Scribd company logo
1 of 28
.NET Framework і C#
Модуль 3
В цьому уроці ви:
 взнаєте про масиви;
 про рядки;
 про використання аргументів командного рядка;
2
Andrey Gladky
KspDevelop@gmail.com
Масиви
 Всі масиви в С# успадковані від класу System.Array, що, у
свою чергу, успадковується від класу System.Object
 З огляду на те, що масиви – це тип посилання, тому для
подальшої роботи потрібно виділити пам’ять використовуючи
ключове слово new.
 Масиви в C# поділяються на:
• Одновимірні
• Багатовимірні
• Вкладені (рвані)
Andrey Gladky
KspDevelop@gmail.co
m 3
Одновимірні масиви
 Синтаксис оголошення одномірного масиву наступний:
<Тип елементів масиву>[] <ім'я масиву>;
 Після виділення пам'яті ініціалізація елементів відбувається
наступним чином: значення всіх простих типів установлюються в «0»,
значення логічного типу – в false, посилання – в null.
4
Andrey Gladky
KspDevelop@gmail.co
m
 Є також можливість проініціалізувати масив потрібними
значеннями при оголошенні:
 Для проходу по масиві можна використати кожен із циклів
for, while, do-while, foreach.
5
Andrey Gladky
KspDevelop@gmail.c
om
Багатовимірні масиви
 Синтаксис багатомірного масиву:
<Тип елементів масиву>[ , ,...] <ім'я масиву>;
 Ініціалізація двомірного масиву при оголошенні:
 Доступ до елементів двовимірного масиву здійснюється в
такий спосіб.
 Виведення двовимірного масиву.
6
Andrey Gladky
KspDevelop@gmail.co
m
Демонстрація
7
Andrey Gladky
KspDevelop@gmail.co
m
Вкладені масиви
Andrey Gladky
KspDevelop@gmail.co
m 8
 Крім одномірних і багатомірних масивів C# також підтримує
вкладені (або «рвані» ) масиви.
 Синтаксис оголошення такого масиву:
<Тип елементів масиву>[][] <ім'я масиву>;
 Такий масив являє собою масив масивів. Тобто у кожному
під масиві масиву розташовується вектор.
Отримаємо масив
Andrey Gladky
KspDevelop@gmail.co
m 9
_studentGroup _studentGroup[0] _studentGroup[1]
Oleg
Victor
Petro
John
Roman
Olesya
Igor
Andrey Gladky
KspDevelop@gmail.com 10
 Доступ до елементів такого масиву одержуємо в такий спосіб:
 Приклад, де здійснюється заповнення масиву й виведення його
на екран:
Методи для роботи з масивами
11
Andrey Gladky
KspDevelop@gmail.com
 Оскільки всі масиви успадковані від класу System.Array, то всі вони
мають багатий набір методів:
◦ GetLength повертає кількість елементів масиву по заданому виміру;
◦ GetLowerBound й GetUpperBound повертають відповідно нижню й верхню границі
масиву по заданому вимірі;
◦ CopyTo копіює всі елементи одного одномірного масиву в інший, починаючи із заданої
позиції;
◦ Clone робить поверхневе копіювання масиву. Копія повертається у вигляді масиву
System.Object[];
◦ Статичний метод BinarySearch робить бінарний пошук значення в масиві (у діапазоні
масиву);
◦ Статичний метод Clear очищає масив (діапазон масиву). При цьому елементи посилань
встановлюються в null, логічні в false, інші типи значень в «0»;
◦ Статичний метод IndexOf - повертає індекс першого входження шуканого елемента в
масиві (у діапазоні масиву), у випадку невдачі - повертає «-1». Пошук здійснюється від
початку масиву;
◦ Статичний метод LastIndexOf - повертає індекс першого входження шуканого
елемента в масиві (у діапазоні масиву). Пошук здійснюється з кінця масиву, у випадку
невдачі - повертає «-1»;
◦ Статичний метод Resize змінює розмір масиву;
◦ Статичний метод Reverse - реверсує масив (діапазон масиву);
◦ Статичний метод Sort - сортує масив (діапазон масиву).
Розширені методи
 Метод Sum - підсумує елементи масиву;
 Метод Average - підраховує середнє арифметичне елементів
масиву
 Метод Contains - повертає істину, якщо заданий елемент
присутній в масиві.
 Метод Max - повертає максимальний елемент масиву.
 Метод Min - повертає мінімальний елемент масиву.
 Властивості:
• Length - повертає довжину масиву
• Rank - повертає кількість вимірів масиву.
Andrey Gladky
KspDevelop@gmail.com 12
Andrey Gladky
KspDevelop@gmail.co
m 13
Демонстрація
Використання foreach
 Даний цикл зручний тим, що при роботі з масивами вам не
потрібно вводити змінні для пробіжки по масиві, враховувати
його довжину й стежити за збільшенням. foreach все це робить
сам. Єдине, що не дозволяє відмовитися від циклів for й while
на користь foreach - це те, що даний цикл працює в режимі
читання, і записати які-небудь дані в елемент масиву при
«пробіжці» буде неможливо.
 При роботі з багатомірними масивами цикл foreach не
зовсім зручний, тому що він виведе елементи всіх вимірів в
один рядок.
Andrey Gladky
KspDevelop@gmail.com 14
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 15
Рядки
 Незважаючи на такий простий спосіб створення рядка,
клас System.String має 8 конструкторів.
Andrey Gladky
KspDevelop@gmail.com 16
Операції з рядками
 Властивість Length – повертає довжину рядка.
 Метод CopyTo - копіює задану кількість символів у масив char
 Методи Equals, Compare, CompareTo й оператор «==» –
використаються для порівняння рядків. Деякі методи
можуть приймати параметр типу StringComparison, що
задає спосіб порівняння. Наприклад, варіант
CurrentCultureIgnoreCase використається для порівняння
без врахування регістра. Метод Compare - статичний, тому
викликається з під класу. CompareTo як й в «С» варіанті
повертає ціле значення(«-1» - ліве слово менше правого, «0» -
слова рівні, «1» - ліве слово більше).
 Методи StartsWith й EndsWith - перевіряють, починається
(закінчується) рядок заданим строковим літералом.
Andrey Gladky
KspDevelop@gmail.com 17
 Метод IndexOf й LastIndexOf - повертає індекс
першого/останнього входження символу/підрядкау вихідному
рядку.
 Методи IndexOfAny й LastIndexOfAny повертає індекс
першого/ останнього входження кожного з перерахованих
символів у вихідному рядку.
 Медод SubString одержує підрядок з вхідного рядка.
 Всі методи пошуку включають перевантажені версії для
пошуку в заданому діапазоні із заданим способом порівняння.
Andrey Gladky
KspDevelop@gmail.com 18
Andrey Gladky
KspDevelop@gmail.com 19
 Метод Concat здійснює конкатенацію (склеювання) рядків.
Зручна альтернатива даному методу - операції «+» та «+=».
 Методи ToLower й ToUpper - повертають рядок у нижньому й
верхньому регістрі відповідно.
 Метод Replace заміняє всі входження символу/підрядка
 на заданий символ/підрядок.
 Метод Contains - перевіряє, чи входить заданий символ/
підрядок у вихідний рядок.
 Метод Insert - вставляє підрядок в задану позицію
вихідного рядка.
 Метод Remove - видаляє заданий діапазон вихідного рядка.
 Методи PadLeft й PadRight доповнюють вихідний рядок
заданими символами ліворуч/праворуч. Якщо символ не
вказується, то доповнення відбувається символом пробілу.
Перший параметр указує на кількість символів у рядку, до
якого вона повинна бути доповнена.
Andrey Gladky
KspDevelop@gmail.com 20
 Метод Split розріже рядок по заданих символах
роздільникам. Повертає масив рядків, що вийшли в результаті
нарізування. Щоб виключити з цього масиву пробільні рядки
- потрібно використати дану функцію з параметром
StringSplitOptions.RemoveEmptyEntries.
 Статичний метод Join поєднує рядки заданого масиву в один і
чергує їх із зазначеним символом-роздільником.
 Методи TrimLeft й TrimRight забирають пробільні (за
замовчуванням) і задані символи відповідно з початку й кінця
рядка. Метод Trim - робить теж саме по обидва боки рядка.
 Статичний метод Format - дозволяє зручно сформувати рядок.
Перший параметр - це форматний рядок, що містить текст
виведений на екран. Якщо в цей рядок необхідно вставити
значення змінних, то місце вставки позначається індексом у
фігурних дужках, при необхідності, також там можна вказати
кількість символів, яку займає даний елемент та його
специфікатор формату. Самі ж данні указуються наступними
параметрами методу.
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 21
Форматований вивід
 Специфікатори формату:
• «С» - для числових даних. Виводить символ місцевої валюти.
• «D» - для цілих даних. Виводить звичайне ціле число.
• «Е» - для числових даних. Виводить число в експонентній формі.
• «F» - для числових даних. Виводить число з фіксованою десятковою
крапкою.
• «G» - для числових даних. Виводить звичайне число.
• «N» - для числових даних. Виводить числа у форматі локальних
настроювань.
• «P» - для числових даних. Виводить числа із символом «%».
• «X» - для цілих даних. Виводить число в шістнадцятковому форматі.
Andrey Gladky
KspDevelop@gmail.com 22
String.Format(“Текст, що виводиться {індекс, розмір:специфікатор}",
дані);
Andrey Gladky
KspDevelop@gmail.com 23
Демонстрація
Особливості використання рядків
Andrey Gladky
KspDevelop@gmail.com 24
 При роботі з рядками потрібно враховувати той факт, що в C#
рядки незмінні. Тобто, неможливо внести в рядок будь-які
зміни не перебудувавши його.
Клас StringBuilder
 Був придуманий для того, щоб уникнути втрат
продуктивності.
 Методи класу StringBuilder:
• Метод Append - додає до вихідного рядка дані кожного з стандартних
типів.
• Метод AppendFormat - додає до вихідного рядка рядок, сформованй у
відповідності зі специфікаторами формату.
• Метод Insert - вставляє дані кожного зі стандартних типів в вихідний
рядок.
• Метод Remove - видаляє з вихідного рядка діапазон символів.
• Метод Replace - замінює символ/під рядок у вихідному рядку на
зазначений символ/під рядок.
• Метод CopyTo - копіює символи вихідного рядка в масив char
• Метод ToString - перетворює об'єкт StringBuilder в String.
Andrey Gladky
KspDevelop@gmail.co
m 25
Властивості StringBuilder
 Властивість Length - повертає кількість символів, що
перебувають в рядку в цей момент.
 Властивість Capacity - повертає або встановлює кількість
символів, що може бути поміщене в рядок без додаткового
виділення пам'яті.
 Властивість MaxCapacity повертає максимальну місткість
рядка.
Andrey Gladky
KspDevelop@gmail.com 26
Використання аргументів командного рядка
Andrey Gladky
KspDevelop@gmail.com 27
Як й в інших мовах програмування, в C# програму можуть
передаватися параметри командного рядка. Прикладом такої
програми - це команда ping (як параметр виступає ip-адреса
комп'ютера, з яким ви хочете перевірити зв'язок).
Для роботи з параметрами командного рядка існує єдиний
параметр в функції main - args типу string[].
Для того, щоб з командним рядком було зручно працювати під час
налагодження - потрібні параметри можна ввести під час
проектування. Для цього потрібно зайти у властивості
проекту, й вибравши вкладку «Debug» увести необхідні
параметри у вікно «Command line arguments», що
проілюстровано на рисунку.
Демонстрація
Andrey Gladky
KspDevelop@gmail.com 28

More Related Content

What's hot

03 problem solving_with_search
03 problem solving_with_search03 problem solving_with_search
03 problem solving_with_searchLStudio
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovuEscuela
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1rznz
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascalAnn Eres
 

What's hot (6)

3018 1
3018 13018 1
3018 1
 
03 problem solving_with_search
03 problem solving_with_search03 problem solving_with_search
03 problem solving_with_search
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovu
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1
 
функція
функціяфункція
функція
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascal
 

Similar to Net framework і c# module 3

ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.ppt
ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.pptЛК03. Кластерний аналіз даних в SAS Enterprise Miner.ppt
ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.pptKostiantyn Hrytsenko
 
лекція 8
лекція 8лекція 8
лекція 8cit-cit
 
лекція 8
лекція 8лекція 8
лекція 8cit-cit
 
1218562
12185621218562
1218562nsahar
 
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...StAlKeRoV
 
Net framework і c# module 13
Net framework і c# module 13Net framework і c# module 13
Net framework і c# module 13Andrii Hladkyi
 
лекція 7
лекція 7лекція 7
лекція 7cit-cit
 
Кластерний аналіз даних методом k-середніх в R
Кластерний аналіз даних методом k-середніх в RКластерний аналіз даних методом k-середніх в R
Кластерний аналіз даних методом k-середніх в RVladimir Bakhrushin
 
Метод гусениця SSA (Володимир Стодола)
Метод гусениця SSA (Володимир Стодола)Метод гусениця SSA (Володимир Стодола)
Метод гусениця SSA (Володимир Стодола)Oleg Nazarevych
 
Mka python jr-urok_07_ua_1563258932
Mka python jr-urok_07_ua_1563258932Mka python jr-urok_07_ua_1563258932
Mka python jr-urok_07_ua_1563258932PavloTsiura
 
Початок роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціПочаток роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціVladimir Bakhrushin
 
Деякі графічні засоби R
Деякі графічні засоби RДеякі графічні засоби R
Деякі графічні засоби RVladimir Bakhrushin
 

Similar to Net framework і c# module 3 (20)

ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.ppt
ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.pptЛК03. Кластерний аналіз даних в SAS Enterprise Miner.ppt
ЛК03. Кластерний аналіз даних в SAS Enterprise Miner.ppt
 
l9
l9l9
l9
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
лекція 8
лекція 8лекція 8
лекція 8
 
лекція 8
лекція 8лекція 8
лекція 8
 
1218562
12185621218562
1218562
 
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
 
Net framework і c# module 13
Net framework і c# module 13Net framework і c# module 13
Net framework і c# module 13
 
лекція 7
лекція 7лекція 7
лекція 7
 
Кластерний аналіз даних методом k-середніх в R
Кластерний аналіз даних методом k-середніх в RКластерний аналіз даних методом k-середніх в R
Кластерний аналіз даних методом k-середніх в R
 
Phpunit
PhpunitPhpunit
Phpunit
 
L l13
L l13L l13
L l13
 
Метод гусениця SSA (Володимир Стодола)
Метод гусениця SSA (Володимир Стодола)Метод гусениця SSA (Володимир Стодола)
Метод гусениця SSA (Володимир Стодола)
 
ACM2020_Lecture1
ACM2020_Lecture1ACM2020_Lecture1
ACM2020_Lecture1
 
Mka python jr-urok_07_ua_1563258932
Mka python jr-urok_07_ua_1563258932Mka python jr-urok_07_ua_1563258932
Mka python jr-urok_07_ua_1563258932
 
Початок роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціПочаток роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриці
 
Matrici
MatriciMatrici
Matrici
 
Деякі графічні засоби R
Деякі графічні засоби RДеякі графічні засоби R
Деякі графічні засоби R
 
present-view-small
present-view-smallpresent-view-small
present-view-small
 
07 Containers
07 Containers07 Containers
07 Containers
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 

Net framework і c# module 3

  • 1. .NET Framework і C# Модуль 3
  • 2. В цьому уроці ви:  взнаєте про масиви;  про рядки;  про використання аргументів командного рядка; 2 Andrey Gladky KspDevelop@gmail.com
  • 3. Масиви  Всі масиви в С# успадковані від класу System.Array, що, у свою чергу, успадковується від класу System.Object  З огляду на те, що масиви – це тип посилання, тому для подальшої роботи потрібно виділити пам’ять використовуючи ключове слово new.  Масиви в C# поділяються на: • Одновимірні • Багатовимірні • Вкладені (рвані) Andrey Gladky KspDevelop@gmail.co m 3
  • 4. Одновимірні масиви  Синтаксис оголошення одномірного масиву наступний: <Тип елементів масиву>[] <ім'я масиву>;  Після виділення пам'яті ініціалізація елементів відбувається наступним чином: значення всіх простих типів установлюються в «0», значення логічного типу – в false, посилання – в null. 4 Andrey Gladky KspDevelop@gmail.co m
  • 5.  Є також можливість проініціалізувати масив потрібними значеннями при оголошенні:  Для проходу по масиві можна використати кожен із циклів for, while, do-while, foreach. 5 Andrey Gladky KspDevelop@gmail.c om
  • 6. Багатовимірні масиви  Синтаксис багатомірного масиву: <Тип елементів масиву>[ , ,...] <ім'я масиву>;  Ініціалізація двомірного масиву при оголошенні:  Доступ до елементів двовимірного масиву здійснюється в такий спосіб.  Виведення двовимірного масиву. 6 Andrey Gladky KspDevelop@gmail.co m
  • 8. Вкладені масиви Andrey Gladky KspDevelop@gmail.co m 8  Крім одномірних і багатомірних масивів C# також підтримує вкладені (або «рвані» ) масиви.  Синтаксис оголошення такого масиву: <Тип елементів масиву>[][] <ім'я масиву>;  Такий масив являє собою масив масивів. Тобто у кожному під масиві масиву розташовується вектор.
  • 9. Отримаємо масив Andrey Gladky KspDevelop@gmail.co m 9 _studentGroup _studentGroup[0] _studentGroup[1] Oleg Victor Petro John Roman Olesya Igor
  • 10. Andrey Gladky KspDevelop@gmail.com 10  Доступ до елементів такого масиву одержуємо в такий спосіб:  Приклад, де здійснюється заповнення масиву й виведення його на екран:
  • 11. Методи для роботи з масивами 11 Andrey Gladky KspDevelop@gmail.com  Оскільки всі масиви успадковані від класу System.Array, то всі вони мають багатий набір методів: ◦ GetLength повертає кількість елементів масиву по заданому виміру; ◦ GetLowerBound й GetUpperBound повертають відповідно нижню й верхню границі масиву по заданому вимірі; ◦ CopyTo копіює всі елементи одного одномірного масиву в інший, починаючи із заданої позиції; ◦ Clone робить поверхневе копіювання масиву. Копія повертається у вигляді масиву System.Object[]; ◦ Статичний метод BinarySearch робить бінарний пошук значення в масиві (у діапазоні масиву); ◦ Статичний метод Clear очищає масив (діапазон масиву). При цьому елементи посилань встановлюються в null, логічні в false, інші типи значень в «0»; ◦ Статичний метод IndexOf - повертає індекс першого входження шуканого елемента в масиві (у діапазоні масиву), у випадку невдачі - повертає «-1». Пошук здійснюється від початку масиву; ◦ Статичний метод LastIndexOf - повертає індекс першого входження шуканого елемента в масиві (у діапазоні масиву). Пошук здійснюється з кінця масиву, у випадку невдачі - повертає «-1»; ◦ Статичний метод Resize змінює розмір масиву; ◦ Статичний метод Reverse - реверсує масив (діапазон масиву); ◦ Статичний метод Sort - сортує масив (діапазон масиву).
  • 12. Розширені методи  Метод Sum - підсумує елементи масиву;  Метод Average - підраховує середнє арифметичне елементів масиву  Метод Contains - повертає істину, якщо заданий елемент присутній в масиві.  Метод Max - повертає максимальний елемент масиву.  Метод Min - повертає мінімальний елемент масиву.  Властивості: • Length - повертає довжину масиву • Rank - повертає кількість вимірів масиву. Andrey Gladky KspDevelop@gmail.com 12
  • 14. Використання foreach  Даний цикл зручний тим, що при роботі з масивами вам не потрібно вводити змінні для пробіжки по масиві, враховувати його довжину й стежити за збільшенням. foreach все це робить сам. Єдине, що не дозволяє відмовитися від циклів for й while на користь foreach - це те, що даний цикл працює в режимі читання, і записати які-небудь дані в елемент масиву при «пробіжці» буде неможливо.  При роботі з багатомірними масивами цикл foreach не зовсім зручний, тому що він виведе елементи всіх вимірів в один рядок. Andrey Gladky KspDevelop@gmail.com 14
  • 16. Рядки  Незважаючи на такий простий спосіб створення рядка, клас System.String має 8 конструкторів. Andrey Gladky KspDevelop@gmail.com 16
  • 17. Операції з рядками  Властивість Length – повертає довжину рядка.  Метод CopyTo - копіює задану кількість символів у масив char  Методи Equals, Compare, CompareTo й оператор «==» – використаються для порівняння рядків. Деякі методи можуть приймати параметр типу StringComparison, що задає спосіб порівняння. Наприклад, варіант CurrentCultureIgnoreCase використається для порівняння без врахування регістра. Метод Compare - статичний, тому викликається з під класу. CompareTo як й в «С» варіанті повертає ціле значення(«-1» - ліве слово менше правого, «0» - слова рівні, «1» - ліве слово більше).  Методи StartsWith й EndsWith - перевіряють, починається (закінчується) рядок заданим строковим літералом. Andrey Gladky KspDevelop@gmail.com 17
  • 18.  Метод IndexOf й LastIndexOf - повертає індекс першого/останнього входження символу/підрядкау вихідному рядку.  Методи IndexOfAny й LastIndexOfAny повертає індекс першого/ останнього входження кожного з перерахованих символів у вихідному рядку.  Медод SubString одержує підрядок з вхідного рядка.  Всі методи пошуку включають перевантажені версії для пошуку в заданому діапазоні із заданим способом порівняння. Andrey Gladky KspDevelop@gmail.com 18
  • 19. Andrey Gladky KspDevelop@gmail.com 19  Метод Concat здійснює конкатенацію (склеювання) рядків. Зручна альтернатива даному методу - операції «+» та «+=».  Методи ToLower й ToUpper - повертають рядок у нижньому й верхньому регістрі відповідно.  Метод Replace заміняє всі входження символу/підрядка  на заданий символ/підрядок.  Метод Contains - перевіряє, чи входить заданий символ/ підрядок у вихідний рядок.  Метод Insert - вставляє підрядок в задану позицію вихідного рядка.  Метод Remove - видаляє заданий діапазон вихідного рядка.  Методи PadLeft й PadRight доповнюють вихідний рядок заданими символами ліворуч/праворуч. Якщо символ не вказується, то доповнення відбувається символом пробілу. Перший параметр указує на кількість символів у рядку, до якого вона повинна бути доповнена.
  • 20. Andrey Gladky KspDevelop@gmail.com 20  Метод Split розріже рядок по заданих символах роздільникам. Повертає масив рядків, що вийшли в результаті нарізування. Щоб виключити з цього масиву пробільні рядки - потрібно використати дану функцію з параметром StringSplitOptions.RemoveEmptyEntries.  Статичний метод Join поєднує рядки заданого масиву в один і чергує їх із зазначеним символом-роздільником.  Методи TrimLeft й TrimRight забирають пробільні (за замовчуванням) і задані символи відповідно з початку й кінця рядка. Метод Trim - робить теж саме по обидва боки рядка.  Статичний метод Format - дозволяє зручно сформувати рядок. Перший параметр - це форматний рядок, що містить текст виведений на екран. Якщо в цей рядок необхідно вставити значення змінних, то місце вставки позначається індексом у фігурних дужках, при необхідності, також там можна вказати кількість символів, яку займає даний елемент та його специфікатор формату. Самі ж данні указуються наступними параметрами методу.
  • 22. Форматований вивід  Специфікатори формату: • «С» - для числових даних. Виводить символ місцевої валюти. • «D» - для цілих даних. Виводить звичайне ціле число. • «Е» - для числових даних. Виводить число в експонентній формі. • «F» - для числових даних. Виводить число з фіксованою десятковою крапкою. • «G» - для числових даних. Виводить звичайне число. • «N» - для числових даних. Виводить числа у форматі локальних настроювань. • «P» - для числових даних. Виводить числа із символом «%». • «X» - для цілих даних. Виводить число в шістнадцятковому форматі. Andrey Gladky KspDevelop@gmail.com 22 String.Format(“Текст, що виводиться {індекс, розмір:специфікатор}", дані);
  • 24. Особливості використання рядків Andrey Gladky KspDevelop@gmail.com 24  При роботі з рядками потрібно враховувати той факт, що в C# рядки незмінні. Тобто, неможливо внести в рядок будь-які зміни не перебудувавши його.
  • 25. Клас StringBuilder  Був придуманий для того, щоб уникнути втрат продуктивності.  Методи класу StringBuilder: • Метод Append - додає до вихідного рядка дані кожного з стандартних типів. • Метод AppendFormat - додає до вихідного рядка рядок, сформованй у відповідності зі специфікаторами формату. • Метод Insert - вставляє дані кожного зі стандартних типів в вихідний рядок. • Метод Remove - видаляє з вихідного рядка діапазон символів. • Метод Replace - замінює символ/під рядок у вихідному рядку на зазначений символ/під рядок. • Метод CopyTo - копіює символи вихідного рядка в масив char • Метод ToString - перетворює об'єкт StringBuilder в String. Andrey Gladky KspDevelop@gmail.co m 25
  • 26. Властивості StringBuilder  Властивість Length - повертає кількість символів, що перебувають в рядку в цей момент.  Властивість Capacity - повертає або встановлює кількість символів, що може бути поміщене в рядок без додаткового виділення пам'яті.  Властивість MaxCapacity повертає максимальну місткість рядка. Andrey Gladky KspDevelop@gmail.com 26
  • 27. Використання аргументів командного рядка Andrey Gladky KspDevelop@gmail.com 27 Як й в інших мовах програмування, в C# програму можуть передаватися параметри командного рядка. Прикладом такої програми - це команда ping (як параметр виступає ip-адреса комп'ютера, з яким ви хочете перевірити зв'язок). Для роботи з параметрами командного рядка існує єдиний параметр в функції main - args типу string[]. Для того, щоб з командним рядком було зручно працювати під час налагодження - потрібні параметри можна ввести під час проектування. Для цього потрібно зайти у властивості проекту, й вибравши вкладку «Debug» увести необхідні параметри у вікно «Command line arguments», що проілюстровано на рисунку.