Константа - це змінна, значення якої не можна змінити. Константи використовуються для гарантування того, що дані в цій змінній не зміняться.
Для того, щоб оголосити константу, перед звичайним оголошенням змінної потрібно додати ключове слово const:
static void Main(string[] args)
{
const int months = 12; // оголошення константи
months = 13; // помилка компіляції
}
При оголошенні константи вона обов'язково повинна бути проініціалізована значенням. Константи також роблять ваш код більш красивим, читаним.
static void Main(string[] args)
{
const int months = 12;
const int monthSalary = 1024;
int yearSalary = monthSalary * months;
}
Зрозуміліше чим:
static void Main(string[] args)
{
int yearSalary = 12 * 1024;
}
Константи можуть бути двох типів: прості літерали і рядкові:
static void Main(string[] args)
{
Console.WriteLine(100); // 100 є 100 і цього ніяк не змінити, це константа, а точніше числовий літерал
Console.WriteLine("Hello!"); // рядок “Hello!” є рядковим літералом
}
Результат роботи програми:
Тут варто відрізняти від константи змінних-констант, останні мають ім'я, як у прикладі з місяцями і зарплатою.
Ключове слово var
Починаючи з версії C# 3.0 в мову було додано ключове слово var, яке дозволяє створювати змінні без явної вказівки типу даних. Тип даних такої змінної визначає компілятор по контексту ініціалізації.
static void Main(string[] args)
{
var number = 5; // number буде типа int
var text ="some text"; // text буде типа string
var number2 = 0.5; // number2 буде типа double
}
var зберігає принцип строгої типізації в Сі-шарп. Це означає, що після того, як для змінної вже був визначений тип, в неї не можна записати дані іншого типу:
static void Main(string[] args)
{
var number = 5;
number = "some text"; // помилка, number визначений як int
}
Ключове слово var слід використовувати в першу чергу з LINQ виразами (при роботі з базами даних)
static void Main(string[] args)
{
var query = from s in bdContext.Students select s;
}
Ключове слово var має обмеження на його використання - var не може бути в якості:
-поля класу
-аргумента функції
-змінній якій присвоюють null
-повертаємого типу функцій
Нововведення var є досить суперечливим серед розробників на C#, деякі використовують його де тільки можливо, інші його уникають (код стає погано читаються).
Посилальні типи
Всі типи даних, про яких ми говорили вище, є структурними. Також існують посилальні типи. З базових типів до посилальних відносяться object і string. Тип object є базовим для всіх інших типів даних. Типу string відповідає рядок символів Unicode.
static void Main(string[] args)
{
string hello = "Hello!";
Console.WriteLine(hello);
}
Результат роботи програми:
Структурні типи даних в Сі-шарп зберігаються на стеку. Для цих даних зарезервована область стеку.
Стек — це структура даних, яка зберігає елементи за принципом «останнім прийшов — першим вийшов» . Прикладом з життя служить стос тарілок. Швидкість роботи зі стеком набагато вище, ніж з оперативною пам'яттю, отже, використання стека підвищує швидкість роботи програми.
Посилальні типи зберігаються в купі.
Купа — це область оперативної пам'яті, яка виділяється з додатком для зберігання даних (наприклад об'єктів). Доступ до даних в купі здійснюється повільніше, ніж до стеку. Змінні посилальних типів зберігають посилання на дані.
До посилальних типів відносяться класи, інтерфейси, делегати та масиви.
Автор Swytos << попередня • наступна >> До змісту