यहाँ मेरी कोड है:दर्दनाक जेनेरिक्स, ऑपरेटर '> =' प्रकार 'टी' की ऑपरेंड के लिए लागू नहीं किया जा सकता और 'टी'
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);
}
}
}
से ऊपर बिंदु if (currentChild.Data >= data)
पर मैं त्रुटि हो रही है:
ऑपरेटर '> =' प्रकार 'टी' की ऑपरेंड के लिए लागू नहीं किया जा सकता और 'टी'
मैं त्रुटि को हल करने क्या करते हैं?
क्या आप कृपया बता सकते हैं कि टी: आईसीओपरपेबल संकलक को बताता है कि टी आईसीओपरपेबल लागू करता है? –
@ श्री अनीबिस जेनेरिक टाइप टी पर एक शर्त है: यह कंपाइलर को बताती है कि 'बाइनरीट्री '* नहीं बनाया जा सकता है, जब तक कि' टी' लागू नहीं होता 'आईसीओम्पेरबल '। –
dasblinkenlight
तो अगर मैं उपयोगकर्ता परिभाषित प्रकारों के साथ टी को तत्काल करता हूं जो लागू नहीं करता है (विरासत) 'IComparable', यह अभी भी नीति को तोड़ता है? है ना? –