Интерфейс IComparable - как в программе происходит сравнение по health - C#
Формулировка задачи:
Здравствуйте! Подскажите пожалуйста , как в данной программе происходит сравнение по health ? ( программа рабочая )
В классе Monster конструктором Monster создаются три объекта , это мне знакомо , понимаю . Но как логически увязать вот эту часть кода :
со сравнением по health не пойму . Каким образом , для чего нужно в логике программы return ?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Pavlovs_199
{
class Monster : IComparable
{
public Monster(int health, int ammo, string name)
{
this.health = health;
this.ammo = ammo;
this.name = name;
}
virtual public void Passport()
{
Console.WriteLine("Monster {0} \t health = {1} ammo = {2}",
name, health, ammo);
}
public int CompareTo(object obj) // реализация интерфейса
{
Monster temp=(Monster)obj;
if (this.health>temp.health) return 1;
if (this.health<temp.health) return -1;
return 0;
}
string name;
int health, ammo;
}
class Class1
{
static void Main()
{
const int n = 3;
Monster[] stado = new Monster[n];
stado[0] = new Monster(50,50,"Вася");
stado[1] = new Monster(80,80,"Петя");
stado[2] = new Monster(40,10,"Маша");
stado[0] = new Monster(50, 50, "Вася");
stado[1] = new Monster(80, 80, "Петя");
stado[2] = new Monster(40, 10, "Маша");
Array.Sort(stado); // сортировка стала возможной
foreach (Monster elem in stado) elem.Passport();
Console.ReadKey();
}
}
}public int CompareTo(object obj) // реализация интерфейса
{
Monster temp=(Monster)obj;
if (this.health>temp.health) return 1;
if (this.health<temp.health) return -1;
return 0;
}Решение задачи: «Интерфейс IComparable - как в программе происходит сравнение по health»
textual
Листинг программы
Monster[] stado = new Monster[n]; stado[0] = new Monster(50,50,"Вася"); stado[1] = new Monster(80,80,"Петя"); stado[2] = new Monster(40,10,"Маша");