c# – 痛苦的泛型,运算符’> =’不能应用于’T’和’T’类型
发布时间:2020-12-15 18:28:52 所属栏目:百科 来源:网络整理
导读:这是我的代码: class BinaryTreeT { private nodeT Head; public class nodeT { public T Data; public nodeT right; public nodeT left; public nodeT parent; ... } ... private void insert(ref T data,nodeT parent,ref nodeT currentChild) { ... { if
这是我的代码:
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)我得到错误:
我该怎么做才能解决这个错误? 解决方法
这个问题的经典解决方案是(1)使T
IComparable<T> ,或(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; } //... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |