Could someone please explain the behavior of this
class testCompile { /* * Sample Code For Purpose of Illustration */ struct person { public int age; public string name; } static void Main(string[] args) { List<person> Listperson = new List<person>(); person myperson = new person(); for (int i = 1; i <= 2; i++) { //Assignment myperson.age = 22+i; myperson.name = "Person - " + i.ToString(); Listperson.Add(myperson); } int x = 0; while (x < Listperson.Count) { //Output values Console.WriteLine("{0} - {1}", Listperson[x].name, Listperson[x].age); x++; } } } /* Output: Person - 1 - 23 Person - 2 - 24 */ Why am I not getting the same output for a class as that of a struct?
class testCompile { /* * Sample Code For Purpose of Illustration */ class person { public int age; public string name; } static void Main(string[] args) { List<person> Listperson = new List<person>(); person myperson = new person(); for (int i = 1; i <= 2; i++) { //Assignment myperson.age = 22+i; myperson.name = "Person - " + i.ToString(); Listperson.Add(myperson); } int x = 0; while (x < Listperson.Count) { //Output values Console.WriteLine("{0} - {1}", Listperson[x].name, Listperson[x].age); x++; } } } /* Output: Person - 2 - 24 Person - 2 - 24 */