Ecco il mio codice:Generics dolorose, Operatore '> =' non possono essere applicate a operandi di tipo 'T' e '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);
}
}
}
Sopra al punto if (currentChild.Data >= data)
sto ottenendo errore:
Operatore '> =' non può essere applicato a operandi di tipo 'T' e 'T'
Cosa devo fare per risolvere l'errore?
puoi spiegare come funziona T: IComparable indica al compilatore che T implementa IComparable? –
@ Mr.Anubis Questa è una condizione del tipo generico T: dice al compilatore che 'BinaryTree' * non può * essere creato, a meno che 'T' implementi' IComparable '. –
dasblinkenlight
Quindi, se istanzio T con tipi definiti dall'utente che non implementa (eredita) 'IComparable', interrompe ancora la politica? non è vero? –