Skip to content

IT CSharp Structs Records

Codex edited this page Oct 11, 2026 · 2 revisions

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

Strutture, record, tuple e confronto

Manuale C# · Esempi UO

struct — tipo di valore; class è un tipo di riferimento. record specifica un tipo con una comoda semantica di uguaglianza dei dati; record class e record struct sono possibili. with crea una copia del record con i membri modificati, preservando l'oggetto originale.

Esempio semplice (Example.cs)

Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.

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);

Risultato:

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}");

Una tupla raggruppa più valori senza una dichiarazione di classe separata. I nomi dei suoi elementi migliorano la leggibilità, ma non creano un nuovo tipo indipendente. Per i tipi nativi, distinguere tra l'uguaglianza di riferimento, Equals, e l'operatore sovraccaricato ==.

Documentazione ufficiale: Strutture, record, tuple e confronto - Microsoft Learn.

Clone this wiki locally