Сравнение двух T типов - C#

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

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

using System;
using System.Collections.Generic;
 
namespace Astral_LW10_1
{
    class MyTree<T>
    {
        public class Node : IComparable<T>
        {
            public T Value { get; set; }
 
            public Node True { get; set; }
 
            public Node False { get; set; }
 
            public Node(T _value)
            {
                Value = _value;
                True = null;
                False = null;
            }
 
            public Node(Node left, Node right, T value)
            {
                True = left;
                False = right;
                Value = value;
            }
 
            public int CompareTo(T other)
            {
                
                return -1;
            }
        }
 
        public Node Root { get; private set; }
 
        public MyTree(T _value)
        {
            Root = new Node(_value);
        }
 
        public void Add(Node _currentNode, T _valueTrue, T _valueFalse)
        {
            _currentNode.True = new Node(_valueTrue);
            _currentNode.False = new Node(_valueFalse);
        }
 
        //создаем узел
        public void Add(T value)
        {
            _add(Root, value);
        }
 
        private void _add(Node node, T value)
        {
            if (node == null)
            {
                node = new Node(null, null, value);
            }
            else
            {
                if (node.Value > value)
                {
                    _add(node.True, value);
                }
                else
                {
                    _add(node.False, value);
                }
            }
        }
 
        public List<T> list = new List<T>();
 
        // вывод в консоль
        public void Print()
        {
            RecursivPprint(Root);
        }
 
        private void RecursivPprint(Node node)
        {
            if (node == null) return;
 
            //Console.WriteLine(node.Value);
            list.Add(node.Value);
 
            RecursivPprint(node.True);
            RecursivPprint(node.False);
        }
 
    }
}
В строке сравниваются два объекта типа T и на этом возникает ошибка
Оператор ">" невозможно применить к операнду типа "T" и "T".
Как мне правильно сравнить эти два объекта?

Решение задачи: «Сравнение двух T типов»

textual
Листинг программы
class MyTree<T> : where T : IComparable<T>

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


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

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

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