c# – 痛苦的泛型,运算符’> =’不能应用于’T’和’T’类型的操作数

前端之家收集整理的这篇文章主要介绍了c# – 痛苦的泛型,运算符’> =’不能应用于’T’和’T’类型的操作数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的代码
class BinaryTree<T> 
{
    private node<T> Head;
    public class node<T> 
    {
     public T Data;
     public node<T> right;
     public node<T> left;
     public node<T> parent;
    ...
    }
    ...
    private void insert(ref T data,node<T> parent,ref node<T> currentChild) 
    {
    ...
        {
            if (currentChild.Data >= data) insert(ref data,currentChild,ref currentChild.right);
            else insert(ref data,ref currentChild.left);
        }
     }
}

在上面if(currentChild.Data> = data)我得到错误

Operator ‘>=’ cannot be applied to operands of type ‘T’ and ‘T’

我该怎么做才能解决这个错误

解决方法

这个问题的经典解决方案是(1)使T @L_403_0@,或(2)使用 IComparer<T>或仿函数到您的班级.

(1)

class BinaryTree<T> where T : Comparable<T> ...

(2)

class BinaryTree<T> {
    private node<T> Head;
    private readonly IComparer<T> comparer;
    public BinaryTree(IComparer<T> comparer) {
        this.comparer = comparer;
    }
    //...
}

猜你在找的C#相关文章