Как перегрузить операции отношения для реализации значимой семантики сравнения объектов - C#

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

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

Добрый вечер. Есть поставленная задача с наследованием: Она в некотором роде не дописана (последние два задания), но суть не в этом. К этому заданию есть дополнение. Меня интересует такой вопрос:

Что есть "параметризованные коллекции", интерфейс IComparable и как перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю, в рамках данной задачи.

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия). На основе класса Line создать классы ColoredLine и PolyLine (многоугольник). В классах описать следующие элементы: • конструкторы с параметрами и конструкторы по умолчанию; • свойства для установки и получения значений всех координат, а также для изменения цвета и получения текущего цвета; • для линий — методы изменения угла поворота линий относительно первой точки; • для многоугольника — метод масштабирования.
Выполните задание,используя для хранения экземпляров разработанных классов стандартные параметризованные коллекции. Во всех классах реализовать интерфейс IComparable и перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю на ваше усмотрение.
class Point 
        {
 
            public Point() //конструктор по умолчанию
            {
            }
            public Point(int x, int y) //конструктор
            {
                this.X = x;
                this.Y = y;
            }
 
            private int _X;
            public int X
            {
                get //способ пролучения свойства
                {
                    return this._X;
                }
                set //способ задания свойства
                {
                    _X = value;
                }
            }
 
            private int _Y;
            public int Y
            {
                get
                {
                    return this._Y;
                }
                set
                {
                    _Y = value;
                }
            }
        }
 
        class ColoredPoint : Point
        {
            public ColoredPoint()
            { }
 
            public ColoredPoint(int x, int y, int color)
                : base(x, y)
            {
                this.Color = color;
            }
 
            private int _Color;
            public int Color
            {
                get
                {
                    return this._Color;
                }
                set
                {
                    _Color = value;
                }
            }
        }
 
        class Line
        {
            public Line()
            { }
 
            public Line(Point start, Point end)
            {
                this.Start = start;
                this.End = end;
            }
 
            public Line (int x1, int y1, int x2, int y2)
                : this(new Point(x1, y1), new Point(x2,y2))
            { }

            private Point _Start;
            public Point Start
            {
                get { return _Start; }
                set { _Start = value; }
            }
 
            private Point _End;
            public Point End
            {
                get { return _End; }
                set { _End = value; }
            }
        }
 
        class ColoredLine : Line 
        {
            public ColoredLine(Point start, Point end, int color)
                : base(start, end)
            {
                this.Color = color;
            }
 
            public ColoredLine(int x1, int y1, int x2, int y2, int color)
                : this(new Point(x1, y1), new Point(x2,y2), color)
            { }
            
            private int _Color;
            public int Color
            {
                get
                {
                    return this._Color;
                }
                set
                {
                    _Color = value;
                }
            }
        }
 
        class Polygon  
        {
            public Polygon()
            {}
 
            public Polygon(List<Line> frieng)
            {
                this.Frieng = frieng;
            }
            
            private List<Line> _Frieng;
            public List<Line> Frieng
            {
                get { return _Frieng; }
                set { _Frieng = value; }
            }
        }

Решение задачи: «Как перегрузить операции отношения для реализации значимой семантики сравнения объектов»

textual
Листинг программы
int CompareTo(T other)

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


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

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

14   голосов , оценка 4.429 из 5
Похожие ответы