- •Лекція 1 Вступ. Огляд парадигм та платформ для Web-розробки. Платформа asp.Net. Інструменти та інтегроване середовище розробки Visual Web Developer 2010.
- •1.1 Вступ. Поняття Інтернет. Базові концепції Всесвітньої павутини www. Еволюція Web
- •1.1.1 Поняття Інтернет
- •1.1.2 Базові концепції Всесвітньої павутини www
- •1.1.3 Еволюція Web
- •1.2 Огляд парадигм та платформ для Web-розробки
- •1.2.2 Найбільш поширені мови та технології розробки
- •1.3 Платформа asp.Net
- •1.3.1 Розвиток asp.Net
- •1.3.2 Ключові переваги asp.Net mvc
- •1.4 Інструменти та інтегроване середовище розробки Visual Web Developer 2010
- •1.4.3 Додаткові компоненти
- •1.4.4 Отримання допоміжної інформації від розробників
- •1 Анатомія html-документа
- •2 Текст
- •3 Гіперпосилання
- •4 Форматовані списки
- •5 Таблиці
- •6 Каскадні таблиці стилів
- •Лекція 3 Синтаксичні конструкції мови c#.
- •3.1Зв’язок між c# I .Net. Особливості платформи .Net
- •3.1.1 Загальномовне виконуюче середовище
- •3.1.2 Класи .Net Framework
- •3.1.3 Простори імен .Net
- •3.2Синтаксичні особливості c#
- •3.2.2 Визначені типи даних
- •3.2.3 Керування потоком виконання
- •3.2.4 Перерахування
- •3.2.5 Простори імен
- •3.2.6 Метод Main (). Консольний ввід-вивід. Коментарі.
- •3.3Об’єкти і типи
- •3.3.1 Класи
- •3.3.2 Структури
- •3.4Наслідування
- •3.4.1 Типи наслідування
- •3.4.2 Модифікатори доступу
- •3.4.3 Інтерфейси
- •3.5Узагальнення
- •3.6Операції
- •1 Колекції
- •2 Делегати
- •Лекція №5 Елементи керування на сторінках asp.Net
- •1. Структура web-додатку на основі asp.Net
- •2. Керування станом в asp.Net
- •3. Серверні елементи керування на сторінках asp.Net
- •3.1 Серверні веб-елементи управління
- •4. Сценарії обробки запитів
- •5. Життєвий цикл сторінки asp.Net
3.2.3 Керування потоком виконання
Оператори, що дозволяють керувати потоком виконання програми, призначені для того, щоб кожна стрічка коду не виконувалася так, як вона розміщена в програмі. Для цього використовуються умовні оператори, цикли та оператори переходу.
Умовні оператори
Умовні оператори дозволяють організувати розгалуження коду в залежності від певних умов або значення виразів. У С # є дві конструкції, призначені для цієї мети: оператор if, який дозволяє перевірити деяку умову, і оператор switch, що дозволяє порівняти вираз з безліччю різних значень.
Оператор if
Для організації умовного розгалуження в мові С # використовується конструкція if. . . еlse. Її синтаксис наведено нижче:
if (умова)
оператор (оператори)
else
оператор (опера тори)
Якщо на кожну з умов потрібно виконати більше одного оператора, ці оператори повинні бути об'єднані в блок за допомогою фігурних дужок ({...}). (Це також сточується циклів). Фігурні дужки застосовувати не обов'язково, якщо в умовній гілки присутній тільки один оператор.
bool isZero;
if (i == 0)
{
isZero = true;
Console .WriteLine ("i рівне нулю");
}
else
{
isZero = false;
Console .WriteLine ("i не рівне нулю");
}
У С # вираження в конструкції if має повертати булеве значення. В С # оператор if не може перевіряти цілі значення (скажімо, повернуті функцією) безпосередньо.
Оператор if можна використовувати без фінальної конструкції else. Можна також комбінувати else if, щоб перевіряти безліч умов. Кількість else if, що додаються до єдиного if, не обмежена.
Оператор switch
Оператор switch. . . case підходить для вибору з метою виконання однієї гілки з безлічі взаємовиключних гілок. Оператор має форму switch з аргументом, за яким слідує послідовність конструкцій case. Коли значення вираження аргументу switch збігається з виразом, наступним за одним з case, то негайно виконується код, наступний за цією конструкцією case. Кінець кожного блоку позначається словом break. У оператор switch можна також включити гілку default, яка буде виконана, якщо жоден з випадків case не підійде.
switch (integerA)
{
case 1:
Console.WriteLine("integerA = 1");
break;
case 2:
Console.WriteLine("integerA = 2");
break;
case 3:
Console.WriteLine("integerA = 3");
break;
default:
Console.WriteLine("integerA не рівне 1,2 або 3");
break;
}
Значення, вказані після case, повинні бути константними виразами; змінні не допускаються. Порядок проходження різних конструкцій case не має значення. Можна навіть першою вказати гілку default. Як наслідок, наявність двох однакових значень case НЕ допускається. Це відноситься до різних констант з однаковими значеннями.
Коли між однією конструкцією case і іншою немає ніякого коду, це дозволяє трактувати два або більш case однаковим чином, тобто:
switch(country)
{
case "au":
case "uk":
case "us":
language = "English";
break;
case "at":
case "de":
language = "German";
break;
}
Цикли
У С # є чотири різних види циклів (for, while, do ... while і foreach), які дозволяють виконувати блок коду повторно до тих пір, поки задовольняється певна умова.
Цикл for
Цикл for в С # надає механізм ітерації, в якому певна умова перевіряється перед виконанням кожної ітерації. Синтаксис цього оператора показаний нижче:
for (ініціалізатор; умова; ітератор)
оператор (оператори)
Тут:
ініціалізатор - вираз, що обчислюється перед першим виконанням тіла циклу (Зазвичай ініціалізація локальної змінної в якості лічильника циклу);
умова - вираз, що перевіряється перед кожною новою ітерацією циклу (повинен повертати true, щоб була виконана наступна ітерація);
ітератор - вираз, що обчислюється після кожної ітерації (зазвичай приріст значення лічильника циклу).
Ітерації припиняються, коли обчислення умови дає false. Цикл for відноситься до циклів з передумовою. Цикл for відмінно підходить для повторного виконання оператора або блоку операторів заздалегідь відому кількість разів. Нерідко виникає необхідність у вкладених циклах for, коли внутрішній цикл for повністю виконується на кожному кроці зовнішнього циклу for.
Цикл while
Подібно до for, while також є циклом з попередньою перевіркою. Синтаксис його аналогічний, але цикли while включають тільки один вираз:
while (умова)
оператор (оператори);
На відміну від for, цикл while частіше використовується для заздалегідь невідомої кількості повторних виконань оператора або блоку операторів. Зазвичай оператор всередині тіла циклу while на певному кроці ітерації встановлює значення булівського прапорця в false, що викликає завершення циклу.
Цикл do... while
Цикл do... while в С # - це версія while з післяумовою. Це означає, що умова циклу перевіряється після виконання тіла циклу. Отже, цикли do...while зручні в тих ситуаціях, коли блок операторів повинен бути виконаний як мінімум один раз.
Цикл foreach
Цикл foreach дозволяє проходити по кожному елементу колекції. Колекція - це об'єкт, що представляє список інших об'єктів. Формально для того, щоб щось можна було розглядати як колекцію, це щось повинно підтримувати інтерфейс IEnumerable. Прикладами колекцій можуть служити
масиви С #, класи колекцій з простору імен System. Collection, а також користувацькі класи колекцій. Ідею синтаксису foreach можна розуміти з наведеного нижче коду, якщо припустити, що arrayOf Ints - масив цілих чисел:
foreach (int temp in arrayOflnts)
{
Console.WriteLine(temp);
}
Важливий момент, який слід відзначити відносно foreach - те, що не можна змінити значення елементу колекції. Якщо є необхідність пройтися по елементах колекції і змінювати їх значення, то треба застосовувати цикл for.
Оператори переходу
Мова С # пропонує кілька операторів, що дозволяють негайно перейти на інший рядок програми.
Оператор goto
Оператор goto дозволяє перейти безпосередньо на інший рядок програми, помічений міткою (яка являє собою просто ідентифікатор з двокрапкою):
goto Labell;
Console.WriteLine ("Це не буде виконано");
Labell:
Console.WriteLine ("Продовження виконання");
З оператором goto пов'язано безліч обмежень. Не допускається переходити всередину блоку коду, такого як тіло циклу for, не можна залишати клас, не дозволяється виходити з блоку finally, наступного за блоками try...
Репутація оператора goto така, що в більшості випадків його застосування категорично засуджується. Він не вписується в рамки гарної практики об'єктно-орієнтованого програмування.
Оператор break
Фактично, break використовується для виходу з циклів for, foreach, while і do...while, виходу з case всередині switch. При цьому управління передається
оператору, одразу наступного за кінцем циклу. Якщо цей оператор зустрічається у вкладеному циклі, то управління передається за межі самого глибоко вкладеного з них.
Оператор continue
Оператор continue подібний break і також повинен застосовуватися тільки всередині циклів for, foreach, while або do... while. Однак при цьому він перериває лише поточну ітерацію циклу, тобто виконання триває з початку наступної ітерації, а не з першого оператора за кінцем циклу.
Оператор return
Оператор return застосовується для виходу з методу класу, повертаючи управління кодом, який викликав цей метод. Якщо для методу зазначений тип повернення, оператор return повинен повертати значення цього типу. В іншому випадку, якщо метод повертає void, необхідно використовувати return без подальшого виразу.
