Repository navigation
CSharp Structs Records
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
struct - тип значення; class - тип посилання. record задає тип із зручною семантикою рівності за даними; можливі record class та record struct. with створює копію запису зі зміненими членами, зберігаючи вихідний об'єкт.
Збережіть цей приклад окремо як 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.
ClassicUO — Bad Newbie & C# Scripts IDE