Aquí está mi código:Genéricos dolorosas, operador '> =' no se pueden aplicar a operandos de tipo 'T' y '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, currentChild, ref currentChild.left);
}
}
}
encima en el punto if (currentChild.Data >= data)
estoy consiguiendo error:
operador '> =' no se puede aplicar a operandos de tipo 'T' y 'T'
¿Qué hago para resolver el error?
¿Puedes explicar cómo funciona eso donde T: IComparable le dice al compilador que T implementa IComparable? –
@ Mr.Anubis Esa es una condición en el tipo genérico T: le dice al compilador que 'BinaryTree' * no puede * crearse, a menos que 'T' implemente' IComparable '. –
dasblinkenlight
Entonces, ¿qué sucede si instancia un T con los tipos definidos por el usuario que no implementa (hereda) 'IComparable', rompe aún la política? no? –