record

Вимагає C# 9

Дозволяє порівнювати об'єкти не по посиланню а за значенням

public record Dog(string Name, int Age);   // як конструктор

// Name і Age - init only властивості, не можна змінювати після ініціалізації

Dog d1 = new Dog("Rex", 3);

Dog d2 = new Dog("Rembo", 5);

Console.WriteLine(d1 == d2);  // True

Таки є можливість потім змінити поля

d1 = Dog with{

    Name = "Angry Rex"

}

Записи можна наслідувати один від одного