class Person : IPrinter, IComparable
this.name = "Имя По Умолчанию";
public Person(string name, int age)
public int CompareTo(object obj)
Person pers = (Person)obj;
if (this.age.CompareTo(pers.age) == 1)
else if (this.age.CompareTo(pers.age) == 0)
throw new NotImplementedException();
public void Print(Person p1)
Console.WriteLine("Имя: {0}, возраст: {1}", p1.name, p1.age);
private static T Min<T>(T x, T y) where T : IComparable
private static void Swap<T>(ref T x, ref T y)
public static void Main(string[] args)
Person person = new Person();
Person Madoka = new Person("Madoka", 12);
Person Homura = new Person("Homura", 13);
Person[] newPerson = { Madoka, Homura };
if (newPerson[0].age.CompareTo(newPerson[1].age) == 1)
Console.WriteLine("{0} старше, чем {1}", newPerson[0].name, newPerson[1].name);
else if (newPerson[0].age.CompareTo(newPerson[1].age) == 0)
Console.WriteLine("Возраст одинаков");
Console.WriteLine("{0}младше, чем {1}", newPerson[0].name, newPerson[1].name);
Console.WriteLine("x = {0} \ny = {1}", x, y);
Swap(ref left, ref right);
Console.WriteLine("Left = {0} \nRight = {1}", left, right);
Swap(ref Madoka, ref Homura);
Console.WriteLine("Madoka теперь {0}, a Homura {1}", Madoka.name, Homura.name);
Console.WriteLine( "{0} меньше", Min(x, y));
Console.WriteLine("Меньшее количество букв - {0}", Min(left, right));
if (Min(Madoka.age, Homura.age) == Madoka.age)
Console.WriteLine("Madoka старше");
Console.WriteLine("Homura старше");