public static void Main()
Console.WriteLine("Hello World");
var person = new Person("Ryan","Fiorini");
Console.WriteLine($"person: {person.FirstName} {person.LastName}");
Console.WriteLine($"person: {person.FirstName} {person.LastName}");
PrintObjectCategory("person", person.GetType());
var person2 = new Person2("Ryan","Fiorini");
Console.WriteLine($"person2: {person2.FirstName} {person2.LastName}");
ChangeFirstName2(person2);
Console.WriteLine($"person2: {person2.FirstName} {person2.LastName}");
PrintObjectCategory("person2", person2.GetType());
var person3 = new Person3();
person3.FirstName = "Ryan";
person3.LastName = "Fiorini";
Console.WriteLine($"person3: {person3.FirstName} {person3.LastName}");
ChangeFirstName3(person3);
Console.WriteLine($"person3: {person3.FirstName} {person3.LastName}");
PrintObjectCategory("person3", person3.GetType());
var person4 = new Person4();
person4.FirstName = "Ryan";
person4.LastName = "Fiorini";
Console.WriteLine($"person4: {person4.FirstName} {person4.LastName}");
ChangeFirstName4(person4);
Console.WriteLine($"person4: {person4.FirstName} {person4.LastName}");
PrintObjectCategory("person4", person4.GetType());
public static void ChangeFirstName(Person person) {
person.FirstName = "Valerie";
Console.WriteLine($"person in method: {person.FirstName} {person.LastName}");
public static void ChangeFirstName2(Person2 person2) {
Console.WriteLine($"person2 in method: {person2.FirstName} {person2.LastName}");
public static void ChangeFirstName3(Person3 person3) {
person3.FirstName = "Valerie";
Console.WriteLine($"person3 in method: {person3.FirstName} {person3.LastName}");
public static void ChangeFirstName4(Person4 person4) {
person4.FirstName = "Valerie";
Console.WriteLine($"person4 in method: {person4.FirstName} {person4.LastName}");
private static void PrintObjectCategory(string name, Type spaceObject)
var objectTypeDescription = spaceObject
Console.WriteLine($"{name} is a {objectTypeDescription} type");
public record struct Person(string FirstName, string LastName);
public record Person2(string FirstName, string LastName);
public record struct Person3()
public string FirstName {get; set;} = default;
public string LastName {get; set;} = default;
public string FirstName {get; set;} = default;
public string LastName {get; set;} = default;