मैं जब लिस्टिंग 3.4 जॉन स्कीट की पुस्तक, सी गहराई में # से tweak करने की कोशिश कर निम्न त्रुटि संदेश मिल रहा है ...कार्यान्वयन IComparable <T>
प्रकार 'list_3_4.Dog' प्रकार पैरामीटर के रूप में नहीं किया जा सकता ' टी 'सामान्य प्रकार या विधि' list_3_4.Program.CompareToDefault (टी) 'में। 'list_3_4.Dog' से 'System.IComparable' तक कोई अंतर्निहित संदर्भ रूपांतरण नहीं है।
यहाँ मेरी कोड है ...
using System;
namespace list_3_4
{
class Program
{
static void Main(string[] args)
{
//string mystring;
Dog d = new Dog("howie");
Console.WriteLine(CompareToDefault("x"));
Console.WriteLine(CompareToDefault(10));
Console.WriteLine(CompareToDefault(0));
Console.WriteLine(CompareToDefault(-10));
Console.WriteLine(CompareToDefault(DateTime.MinValue));
Console.WriteLine(CompareToDefault(d));
Console.ReadKey();
}
static int CompareToDefault<T> (T value) where T: IComparable<T>
{
return value.CompareTo(default(T));
}
}
public class Dog
{
private string _name;
public Dog(string name)
{
_name = name;
}
}
}
मैं कैसे जॉन Skeets कोड लिस्टिंग के साथ काम करने के लिए एक "डॉग" की तरह एक संदर्भ प्रकार जोड़ सकता हूँ ??? मैं समझता हूं कि कुत्ते को IComparable लागू करने की जरूरत है, लेकिन मुझे नहीं पता कि कैसे!
प्रश्न क्या है? – elyashiv
आपकी 'कुत्ते' कक्षा सामान्य बाधा द्वारा निर्दिष्ट 'IComparable' लागू करने के लिए प्रतीत नहीं होती है, जहां टी: आईसीओम्पेरबल '। –
+1 कोड कोड के लिए जो मैं कॉपी, पेस्ट और प्ले कर सकता हूं। हालांकि एक सवाल अच्छा लॉल –