Skip to content

CSharp Structs Records

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Структури, записи, кортежі та порівняння

Посібник C# · Приклади UO

struct - тип значення; class - тип посилання. record задає тип із зручною семантикою рівності за даними; можливі record class та record struct. with створює копію запису зі зміненими членами, зберігаючи вихідний об'єкт.

Простий приклад (Example.cs)

Збережіть цей приклад окремо як Example.cs. Запускайте його незалежно від інших прикладів на сторінці.

Example.cs:

// PROJECT-EXAMPLE
var original = new Item("ore", 1);
var copy = original with { Count = 3 };
System.Console.WriteLine($"{original.Count}:{copy.Count}");
record Item(string Name, int Count);

Результат:

1:3
record Position(int X, int Y);
var first = new Position(10, 20);
var second = first with { X = 11 };
UO.Print($"First={first}, second={second}");
readonly record struct Point(int X, int Y);
var point = new Point(10, 20);
(int X, int Y) coordinates = (point.X, point.Y);
var (x, y) = coordinates;
UO.Print($"{x}, {y}");

Кортеж групує кілька значень без окремого оголошення класу. Імена його елементів покращують читання, але не творять незалежний новий тип. Для власних типів розрізняйте рівні посилання, Equals і перевантажений оператор ==.

Офіційна документація: Структури, записи, кортежі та порівняння – Microsoft Learn.

Clone this wiki locally