public static void Main()
Person pers = new Person("Евгений", 20);
Person[] persons = new Person[3];
persons[0] = new Person("Евгений", 22);
persons[1] = new Person("Мария", 19);
persons[2] = new Person("Александр", 16);
Console.WriteLine("Сортировка:");
foreach (var person in persons)
Console.WriteLine("x: {0}, y: {1}", x, y);
Console.WriteLine("x: {0}, y: {1}", x, y);
Console.WriteLine("1 значение: {0}, 2 значение: {1}, Минимальное: {2}", a1, a2, Min<int>(a1, a2));
Console.WriteLine("1 значение: {0}, 2 значение: {1}, Минимальное: {2}", b1, b2, Min<string>(b1, b2));
Person c1 = new Person("Алексей", 26);
Person c2 = new Person("Екатерина", 21);
Console.WriteLine("1 значение:");
Console.WriteLine("2 значение:");
Console.WriteLine("Минимальное:");
Min<Person>(c1, c2).Print();
static void Swap<T>(ref T x, ref T y)
static T Min<T>(T x, T y) where T : IComparable
return x.CompareTo(y) < 0 ? x : y;
class Person : IPrinter, IComparable
public Person(string name, int age)
Console.WriteLine("Имя: {0} Возраст: {1}", name, age);
public int CompareTo(object obj)
Person pers = (Person)obj;
return age.CompareTo(pers.age);