Record type Record can be class or struct. Class is default and it need not be defined. public record class Person (string FullName, DateOnly DateOfBirth); equivalent to saying public class Person{ public string FullName {get; init;} = default!; public DateOnly DateOfBirth {get; set;} } public record struct Person(string FullName, DateOnly DateOfBirth); Console.WriteLine(new Person{ FullName = "Kirthiga", DateOfBirth = new DateOnly(1996, 8, 7)}; It will say NameSpace.Person but won't say the details var kirthiga = new Person("Kirthiga", new DateOnly(1996,8,7)); On the other hand when you use record and do a Console.WriteLine(kirthiga); It will print out Person {FullName = "Kirthiga", DateOfBirth = "07/08/1996"} with full details Also when we duplicate classes example, var personA = new Person{ FullName = "Kirthiga", DateOfBirth = "07/08/1996" } var personB = new Person{ FullName = "Kirthiga", DateOfBirth = ...