Структурні і посилальні типи в c #

У C # всі типи даних поділені на два види: структурні і посилальні.

o Цілочисельні типи

o Типи з плаваючою точкою

o Десятковий тип

· Структури, які визначаються користувачем (struct)

Змінні, засновані на типах значень, містять безпосередньо значення. При присвоєнні змінної одного типу значень іншому створюється копія присвоюється значення. В цьому і є відмінність від посилальних типів, при присвоєнні яких копіюються посилання на об'єкт, а не самі об'єкти. Для кожного типу значень існує неявний конструктор за замовчуванням, не започатковано значення за замовчуванням для даного типу (для bool це значення false, для перелічуваних типів - нульове).

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

Старший розряд цілого числа використовується в якості прапора знака. Якщо прапор знака дорівнює 0, то число вважається позитивним, а якщо 1, то негативним.

Числа з плаваючою точкою дозволяють представляти числа з дробовою частиною, до них відносяться float (32 біта) - з одинарного точністю і double (64 біта) - подвійний точності.

Десятковий тип decimal (128 біт) призначений для застосування у фінансових розрахунках. Цей тип дозволяє представити числа з точністю до 28 десяткових розрядів. Щоб значення інтерпретувалася як десятковий тип, до нього необхідно додати суфікс m в кінці, наприклад:

decimal d = 5.95m;

У C # символи представлені 16-розрядних УНІКОД (тип char). Для того, щоб привласнити значення символьної змінної, досить укласти символ в одинарні лапки.

Логічний тип bool прелставляет два значення - true (істина) і false (брехня).

де ім'я - це ім'я типу перерахування, а спісок_перечісленія - список ідентифікаторів, що розділяється комами.

Кожна символічно позначається константа в перерахуванні має ціле значення.

До посилальним типам относятcя:

Довідкові типи зберігаються в купі або хіпі, яку можна уявити, як невпорядкований набір різнорідних об'єктів. Фізично це інша частина пам'яті, яка доступна процесору.

15. Перераховуються типи в C #

де ім'я - це ім'я типу перерахування, а спісок_перечісленія - список ідентифікаторів, що розділяється комами.

Кожна символічно позначається константа в перерахуванні має ціле значення. Для кожної наступної символічно позначається константи в перерахуванні задається ціле значення, яке на одиницю більше, ніж у попередньої константи. За замовчуванням значення першої символічно позначається константи в перерахуванні дорівнює нулю.

Доступ до членів перерахування здійснюється по імені їх типу, після якого слід оператор-точка.

Значення однієї або декількох символічно позначаються констант в перерахуванні можна задати за допомогою ініціалізатор. Для цього достатньо вказати після символічного позначення окремої константи знак рівності і ціле значення.

За замовчуванням в якості базового для перерахування вибирається тип int, проте перерахування може бути створено будь-якого цілочисельного типу, за винятком char. Для того, щоб вказати будь-який тип, крім int, досить помістити цей тип після імені перерахування, відокремивши його двокрапкою. Загальна форма:

Приклад застосування перерахування:

public enum Music

16. Перевантаження операторів в C #

Перевантаження операторів - процес визначення призначення оператора по відношенню до створюваного класу. При цьому дія оператора повністю контролюється і може змінюється в залежності від конкретного класу. Коли оператор перевантажується, жодне з його початкових значень не змінюється.

Головна перевага перевантаження операторів полягає в тому, що вона дозволяє плавно інтегрувати клас нового типу в середу програмування.

Для перевантаження оператора служить ключове слово operator, що визначає операційний метод, який, в свою чергу, визначає дію оператора щодо свого класу.

Існує дві форми операторних методів (operator): одна - для унарних операторів, інша - для бінарних.

Перевантаження унарна оператора:

public static возвращаемий_тіп operator op (тіп_параметра операнд)

Перевантаження бінарного оператора:

public static возвращаемий_тіп operator op (тіп_параметра1 операнд1, тіп_параметра2 операнд2)

Тут замість op підставляється перевантажується оператор, а возвращаемий_тіп позначає конкретний тип значення, що повертається цією операцією. Для унарних операторів операнд позначає передається операнд, а для бінарних операторів те ж саме позначають операнд1 і операнд2. Операторні методи повинні бути public і static.

Тип операнда унарних операторів повинен бути такий же, як і у класу, для якого перевантажується оператор. А в бінарних операторах хоча б один з операндів має бути такого ж типу, як і у його класу. В параметрах оператора можна використовувати модифікатори ref або out.

int x, y, z; // тривимірні координати

Схожі статті