Интерфейс IComparable - как в программе происходит сравнение по health - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Подскажите пожалуйста , как в данной программе происходит сравнение по health ? ( программа рабочая )
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Pavlovs_199
  6. {
  7.  
  8. class Monster : IComparable
  9. {
  10. public Monster(int health, int ammo, string name)
  11. {
  12. this.health = health;
  13. this.ammo = ammo;
  14. this.name = name;
  15. }
  16. virtual public void Passport()
  17. {
  18. Console.WriteLine("Monster {0} \t health = {1} ammo = {2}",
  19. name, health, ammo);
  20. }
  21. public int CompareTo(object obj) // реализация интерфейса
  22. {
  23. Monster temp=(Monster)obj;
  24. if (this.health>temp.health) return 1;
  25. if (this.health<temp.health) return -1;
  26. return 0;
  27. }
  28. string name;
  29. int health, ammo;
  30. }
  31. class Class1
  32. {
  33. static void Main()
  34. {
  35. const int n = 3;
  36. Monster[] stado = new Monster[n];
  37. stado[0] = new Monster(50,50,"Вася");
  38. stado[1] = new Monster(80,80,"Петя");
  39. stado[2] = new Monster(40,10,"Маша");
  40.  
  41. stado[0] = new Monster(50, 50, "Вася");
  42. stado[1] = new Monster(80, 80, "Петя");
  43. stado[2] = new Monster(40, 10, "Маша");
  44.  
  45. Array.Sort(stado); // сортировка стала возможной
  46. foreach (Monster elem in stado) elem.Passport();
  47. Console.ReadKey();
  48. }
  49. }
  50. }
В классе Monster конструктором Monster создаются три объекта , это мне знакомо , понимаю . Но как логически увязать вот эту часть кода :
Листинг программы
  1. public int CompareTo(object obj) // реализация интерфейса
  2. {
  3. Monster temp=(Monster)obj;
  4. if (this.health>temp.health) return 1;
  5. if (this.health<temp.health) return -1;
  6. return 0;
  7. }
со сравнением по health не пойму . Каким образом , для чего нужно в логике программы return ?

Решение задачи: «Интерфейс IComparable - как в программе происходит сравнение по health»

textual
Листинг программы
  1. Monster[] stado = new Monster[n];
  2. stado[0] = new Monster(50,50,"Вася");
  3. stado[1] = new Monster(80,80,"Петя");
  4. stado[2] = new Monster(40,10,"Маша");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы