У цьому невеликому уроці ми поговоримо про альтернативу класів - структурах.
Структура - це простіша версія класів. Всі структури успадковуються від базового класу System.ValueType і є типами значень, тоді як класи - посилальні типи. Структури відрізняються від класів наступними речами:
- Структура не може мати конструктора без параметрів (конструктора за замовчуванням);
- Поля структури не можна ініціалізувати, крім випадків, коли поля статичні.
private int x = 0; // в структурі неприпустимо;
- Примірники структури можна створювати без ключового слова new;
- Структури не можуть успадковуватися від інших структур або класів. Класи не можуть успадковуватися від структур. Структури можуть реалізовувати інтерфейси;
- Так як структури це типи значень, вони мають всі властивості подібних типів (передача в метод за значенням і т.д.), на відміну від посилальних типів;
- Структура може бути nullable типом.
Структури оголошуються за допомогою ключового слова struct:
public struct Book
{
public string Name;
public string Year;
public string Author;
}
Примірник структури можна створювати без ключового слова new:
static void Main(string[] args)
{
Book b;
b. Name = "BookName";
}
Структури підходять для створення нескладних типів, таких як точка, колір, коло. Якщо необхідно створити безліч екземплярів подібного типу, використовуючи структури, ми економимо пам'ять, яка могла б виділятися під посилання у випадку з класами.
Прикладами структур в стандартній бібліотеці класів .Net є такі типи як int, float, double, bool та інші. Також DateTime, Point (точка), Color.
Домашнє завдання
Створіть програму, яка знаходитиме коло(структура) у якій радіус максимально близький до середнього значення радіусів кіл зі списку.