- •Лекція 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.2 Визначені типи даних
Типи значень і типи посилань
В С # є дві категорії типів даних:
типи значень;
типи посилань.
Концептуально різниця між ними полягає в тому, що тип значень (value type) зберігає дані безпосередньо, в той час як тип посилань (reference type) зберігає посилання на значення. Ці типи зберігаються в різних місцях пам'яті: типи значень зберігаються в області, відомій як стек, а типи посилань - в області, званої керованою купою. Присвоєння їм значень дає різний ефект. Наприклад, int - тип значення, і це означає, що наступні оператори в результаті створять дві області пам'яті, кожна з яких буде зберігати значення 20:
//і і j мають тип int
i = 20;
j = i;
Припустимо, що визначений клас по імені Vector. Також припустимо, що Vector - контрольний тип, в якому присутня змінна-член типу int на ім'я Value:
Vector x, у;
х = new Vector ();
х.Value = 30; / / Value - поле, визначене в класі Vector
у = х;
Console.WriteLine (у.Value);
у.Value = 50;
Console.WriteLine (x.Value);
Ключовий момент, який необхідно зрозуміти, полягає в тому, що після виконання цього коду буде існувати тільки один об'єкт типу Vector, а х та у вказуватимуть на область пам'яті, у якій зберігається цей об'єкт.
Більшість складних типів даних С #, включаючи оголошені класи, є типи посилань. Вони розміщуються в купі, мають певний час життя, протягом якого може відбуватися безліч викликів функцій, і можуть бути доступні через один або більше псевдонімів.
У С # є 15 визначених типів, 13 типів значень і 2 типи посилань (string і object).
Визначені типи значень
Вбудовані типи представляють примітиви, такі як цілі числа і числа з плаваючою комою, символьні і булівські типи.
Мова С # підтримує вісім зумовлених цілочисельних типів, перерахованих в табл. 3.1.
Таблиця 3.1 Цілочисельні типи
Ім’я |
Тип CTS |
Опис |
Діапазон (мінімум:максимум) |
sbyte |
System.SByte |
8-бітне ціле зі знаком |
-128:127 (-27:27-1) |
short |
System.Intl6 |
16-бітне ціле зі знаком |
-32768:32767 (-215:215-1) |
int |
System.Int32 |
32-бітне ціле зі знаком |
-2147483648:2147483647 (-231:231-1) |
long |
System.Int64 |
64-бітне ціле зі знаком |
-9223372036854775808: 9223372036854775807 (-263:263-1) |
byte |
System.Byte |
8-бітне ціле без знаку |
0:255 (0:28-1) |
ushort |
System.UIntl6 |
16-бітне ціле без знаку |
0:65535 (0:216-1) |
uint |
System.UInt32 |
32-бітне ціле без знаку |
0:4294967295 (0:232-1) |
ulong |
System.UInt64 |
64-бітне ціле без знаку |
0:18446744073709551615 (0:264-1) |
В цілях забезпечення безпеки типів С # трактує типи byte і char, як зовсім різні, і будь-які програмні перетворення між ними повинні запитуватися явно.
Якщо виникає якась невизначеність щодо того, чи має ціле значення тип int, uint, long або ulong, то за замовчуванням приймається int.
Типи чисел з плаваючою комою
Ім’я |
Тип CTS |
Опис |
Кількість знаків |
Діапазон (мінімум:максимум) |
float |
System.Single |
32-бітне з плаваючою точкою одинарної точності |
7 |
від ±1.5 х 10-45 до ±3.4 x 1038
|
double |
System.Double |
64-бітне з плаваючою точкою подвійної точності |
15/16 |
від ±5.0 х 10-324 до ±1.7 х 10308 |
Тип даних float призначений для менших значень з плаваючою точкою, для яких потрібна менша точність. Якщо нецілочисельне значення жорстко кодується (наприклад, 12.3), то зазвичай компілятор припускає, що мається на увазі значення типу double. Якщо значення необхідно специфікувати як float, потрібно додати до нього символ F (або f):
float f = 12.3F;
Десятковий тип
Для представлення чисел з плаваючою точкою високої точності передбачений також десятковий тип decimal.
Ім’я |
Тип CTS |
Опис |
Кількість знаків |
Діапазон (мінімум:максимум) |
decimal |
System.Decimal |
128-бітне з плаваючою точкою в десятковій нотації з високою точністю |
28 |
від ±1.0 х 10-28 до ±7.9 x 1028
|
Слід мати на увазі, що decimal не реалізований як примітивний тип, тому застосування decimal може вплинути на продуктивність обчислень. Щоб вказати, що значення має тип decimal, а не double, float або ціле, до значення необхідно додавати символ М (або m), як показано в наступному прикладі:
decimal d = 12.30М;
Булівський тип
Тип bool в С # використовується для зберігання булівских значень - true або false.
Ім’я |
Тип CTS |
Значення |
bool |
System.Boolean |
true або false |
Неявне перетворення значень bool в цілі і назад не допускається. Спроба вказати нуль замість false і ненульове значення замість true призводить до помилки.
Cимвольний тип
Для зберігання одиночних символів в С # підтримується тип даних char.
Ім’я |
Тип CTS |
Значення |
char |
System.Char |
true або false |
Представляє окремий 16-бітний (Unicode) символ. Літерали типу char записуються в одиночних лапках. Нарівні з поданням char як символьних літералів, їх можна представляти як 4-розрядні шістнадцяткові значення Unicode (наприклад, '\u0041').
Визначені типи посилань
У С # підтримуються два визначені типи посилань- object і string.
Ім’я |
Тип CTS |
Опис |
object |
System.Object |
Кореневий тип, від якого успадковуються всі типи CTS (включаючи типи значень) |
string |
System.String |
Стрічка символів Unicode |
Тип object
У С# тип object - це первинний батьківський тип, від якого успадковуються всі внутрішні і користувацькі типи. Це означає, що тип object можна використовувати для двох описаних нижче цілей.
Посилання на object можна застосовувати для зв'язку з об'єктом будь-якого конкретного підтипу. Посилання objectтакож зручні для рефлексії, коли код повинен маніпулювати об'єктами, конкретний тип яких невідомий.
Тип object реалізує безліч базових методів загального призначення, серед яких Equals (), GetHashCode (), GetType () іToString ()
Об'єкт string розміщується в купі, а не в стеку, і коли привласнюється одна стрічка іншій, то буде отримано два посилання на одну і ту ж стрічку у пам'яті. Проте поведінка string дещо відрізняється від поведінки інших типів посилань. Наприклад, варто внести зміни в один з цих рядків, як тут же буде створений абсолютно новий об'єкт string, a старий залишиться незмінним.
Стрічкові літерали поміщаються в подвійні лапки ("..."). Якщо спробувати помістити стрічку в одиночні лапки, то компілятор сприйме це значення як char і видасть помилку. Стрічки С #, як і char, можуть містити в собі шістнадцяткові і керуючі послідовності Unicode.
