Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕК. Алгоритмізація. Конспект лекцій.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.89 Mб
Скачать
    1. Типи даних за значенням і за посиланням

Усі числові, логічні та символьний типи даних є типами даних за значенням – вони займають фіксовану довжину і зберігаються у стеку програми, на відміну від них, тип даних рядок і тип даних об’єкт є типами даних за посиланням – вони можуть займати довільну довжину і зберігаються у спеціальній області пам’яті, яка має назву купа (heap).

Тип даних об’єкт

Тип даних об’єкт (object) є базовим класом для всіх інших класів у мові C#, незалежно від того є вони стандартними, чи визначені користувачем. Крім того, специфікою мови є те, що цей тип даних також є базовим і для всіх типів даних взагалі – навіть прості типи даних мають певну специфіку, притаманну лише об’єктам у інших мовах програмування.

Водночас C# не являється чистою ОО мовою, де усі типи даних є класами і однакові в поведінці (основна причина – оптимізація по швидкості), тому робота з типами даних відрізняється від того, до якої групи вони відносяться.

    1. Сумісність типів та перетворення між типами даних

Розглянемо приклад.

Яку помилку може видавати ця програма при спробі її виконати?

using System;

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

byte total;

total = value1 + value2;

Console.WriteLine(total);

}

}

}

Способи здійснити перетворення типів

Існує два способи здійснення перетворення типів:

  • неявні перетворення – здійснюються середовищем виконання автоматично;

  • явні перетворення – безпосередньо задаються програмістом.

Способи здійснення перетворення типів

Неявні перетворення можуть виконуватися автоматично, однак лише у тому випадку, якщо значення, що перетворюється, не буде змінюватися.

Виправимо програму наступним чином:

using System;

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

long total;

total = value1 + value2;

Console.WriteLine(total);

}

}

}

Сумісність типів (допустимість неявних перетворень)

Явні перетворення

Явні перетворення використовуються у тому випадку, якщо можлива втрата даних – в подібній ситуації програміст має впевнитися, що втрати даних не буде і примусово задати перетворення.

Виправимо програму таким чином:

using System;

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

byte total;

total = (byte) (value1 + value2);

Console.WriteLine(total);

Console.ReadKey();

}

}

}

Перетворення за допомогою методів

Перетворення типів між числами і рядками можна здійснювати за допомогою методів.

Перетворення із цілого числа в рядок:

int i = 10;

string s = i.ToString();

Перетворення із рядка в ціле число:

string s = "10";

int i = int.Parse(s);

    1. Екземпляри даних: змінні, константи

Екземплярами даних є змінні і константи, яким при декларації задається певний тип даних і початкове значення (задавати початкове значення для змінних не обов’язково).

Декларація змінних:

int i = 10;

string s = i.ToString();

Декларація констант:

const string s = "Рядок";

const int i = 20;