public static void Main()
Person person1 = new Person("Ryan", "Fiorini");
Person person2 = new Person("Ryan", "Fiorini");
Person person3 = new Person("Ryan", "Fiorini1");
Person person4 = person3;
Person2 person5 = new Person2("Ryan", "Fiorini");
Console.WriteLine($"person1 and person2 equal: {person1 == person2}");
Console.WriteLine($"person2 and person3 equal: {person2 == person3}");
Console.WriteLine($"person3 and person4 equal: {person3 == person4}");
PrintObjectCategory("person1", person1.GetType());
PrintObjectCategory("person2", person2.GetType());
PrintObjectCategory("person3", person3.GetType());
PrintObjectCategory("person4", person4.GetType());
PrintObjectCategory("person5", person5.GetType());
Person4 person10 = new Person4() { FirstName = "Ryan", LastName = "Fiorini" };
Person4 person11 = new Person4() { FirstName = "Ryan", LastName = "Fiorini" };
Person4 person12 = person11 with { FirstName = "Ryan", LastName = "Fiorini" };
Person4 person13 = person11 with { FirstName = "Ryan1", LastName = "Fiorini1" };
Person4 person14 = person13 with { };
Console.WriteLine($"person10 and person11 equal: {person10 == person11}");
Console.WriteLine($"person11 and person12 equal: {person11 == person12}");
Console.WriteLine($"person11 and person13 equal: {person11 == person13}");
Console.WriteLine($"person13 and person14 equal: {person13 == person14}");
PrintObjectCategory("person10", person10.GetType());
PrintObjectCategory("person11", person11.GetType());
PrintObjectCategory("person12", person13.GetType());
PrintObjectCategory("person13", person13.GetType());
PrintObjectCategory("person14", person14.GetType());
private static void PrintObjectCategory(string name, Type spaceObject)
var objectTypeDescription = spaceObject
Console.WriteLine($"{name} is a {objectTypeDescription} type");
public record Person(string FirstName, string LastName);
public record Person2(string FirstName, string LastName);
public record Person4() {
public string FirstName {get; init;}
public string LastName {get; init;}