В Паскалі, при визначенні типу даних задавалося:
Клас містить:
Об'єкти - екземпляри класу, є узагальненням поняття змінної.
На перших порах можна вважати, що:
Поняття клас і тип синоніми, змінна і об'єкт також синоніми.
Вбудовані типи, такі як int або string, називають як і раніше типами, а їх екземпляри - змінними.
Для абстрактних даних, що описують, наприклад, клас ссавців замість типу говорять клас, а замість змінної - об'єкт.
Такий погляд на типи і класи досить корисний, але він не є повним.
Для значущих типів використовується пряма адресація, значення зберігає власне дані, і пам'ять для них відводиться в стеці.
Стек це область пам'яті, підтримувана процесором. Доступ до стека у багато разів швидше, ніж до загальної області пам'яті.
Для довідкових типів значенням служить посилання на деякий об'єкт, розташований в динамічної пам'яті - "купи". Кілька довідкових змінних можуть вказувати на один і той же об'єкт і використовувати його значення.
В мові C # жорстко визначено, які типи відносяться до посилальним, а які - до значущим.
До значущим типам відносяться: логічний, арифметичні, структури, перерахування.
До посилальним типам відносяться: масиви, рядки і класи.
Всі вбудовані типи C # однозначно відображаються, а фактично збігаються з системними типами каркаса Net Framework, розміщеними в просторі імен System. Тому всюди, де можна використовувати ім'я типу, наприклад, int, з тим же успіхом можна використовувати і ім'я Int32.
Назва | Ім'я типу C# | Тип в Framework | Діапазон значень | Кол-во біт |
---|---|---|---|---|
Булевский | bool | Boolean | true, false | 8 |
Цілий | sbyte | SByte | –128 — 127 | 8 |
byte | Byte | 0 — 255 | 8 | |
int | Int32 | –2*109 — 2*109 | 32 | |
long | Int64 | –9*1018 — 9*1018 | 64 | |
Дійсний | float | Single | 1.5*10-45 — 3.4*1038 | 32 |
double | Double | 5.0*10-324 — 1.7*10308 | 64 | |
Символьні типи | char | Char | U+0000 — U+ffff | 16 |
string | String | строка из символів Unicode | - |
Приклади:
int i; int a = 42; string g = "Hello, World!"; // в двойных кавычках char c=‘*’ // в одинарных кавычках double b = 1.2, d=45.6; |
Всі змінні в програмі обов'язково повинні бути ініційовані (повинні мати початкове значення) !!!
Змінні існують тільки в своїй області видимості, при виході з якої змінна "вмирає".
Область видимості змінної починається в рядку, де змінна оголошена і закінчується на закриває фігурної дужки (змінна повинна бути оголошена між цією дужкою і парної до неї відкриває).
Ось що пояснює приклад:
int k = 3; Console.WriteLine (k); |
Тут значення змінної k є і виведеться на екран.
{int k = 3; } Console.WriteLine (k); |
В цьому ж прикладі вивести k на екран не вийде - вона померла на закриває фігурної дужки.
Ось кілька прикладів опису іменованих констант:
const int st = 55; const double pi = 3.14159265358979323846264338; |
При введенні речових констант в програмі можна використовувати спеціальні суфікси в кінці:
const double x = 37D; const float x = 35F; |