1.  
  2. public struct Person
  3. {
  4. public string Name;
  5. public int Age;
  6. public Person(string name, int age)
  7. {
  8. Name = name;
  9. Age = age;
  10. }
  11. }
  12.  
  13. public class Application
  14. {
  15. static void Main()
  16. {
  17. // Create struct instance and initialize by using "new".
  18. // Memory is allocated on thread stack.
  19. Person p1 = new Person("Alex", 9);
  20. Console.WriteLine("p1 Name = {0} Age = {1}", p1.Name, p1.Age);
  21.  
  22. // Create new struct object. Note that struct can be initialized
  23. // without using "new".
  24. Person p2 = p1;
  25.  
  26. // Assign values to p2 members.
  27. p2.Name = "Spencer";
  28. p2.Age = 7;
  29. Console.WriteLine("p2 Name = {0} Age = {1}", p2.Name, p2.Age);
  30.  
  31. // p1 values remain unchanged because p2 is copy.
  32. Console.WriteLine("p1 Name = {0} Age = {1}", p1.Name, p1.Age);
  33.  
  34. // Keep the console open in debug mode.
  35. Console.WriteLine("Press any key to exit.");
  36. Console.ReadKey();
  37. }
  38. }
  39. /*
  40. Output:
  41. p1 Name = Alex Age = 9
  42. p2 Name = Spencer Age = 7
  43. p1 Name = Alex Age = 9
  44. */
  45.