class Person : IPrinter, IComparable
public Person(string name, int age)
Console.WriteLine("Имя - {0}\nВозраст - {1}\n", name, age);
public int CompareTo(object obj)
Person person = (Person)obj;
if (this.age.CompareTo(person.age) == 1)
else if (this.age.CompareTo(person.age) == 0)
public static void Main(string[] args)
Person classic = new Person();
Person special = new Person("Гордон Фриман", 33);
Person verySpecial = new Person("Аликс", 25);
Person[] persons = { classic, special, verySpecial };
foreach (var item in persons)
foreach (var item in persons)
Swap<int>(ref classic.age,ref special.age);
Swap<string>(ref special.name,ref verySpecial.name);
Swap<Person>(ref classic,ref verySpecial);
public static void Swap<T>(ref T a,ref T b)