Sto ottenendo il seguente messaggio di errore quando si tenta di modificare 3.4 dal libro di Jon Skeet, C# in profondità ...Implementazione IComparable <T>
Il tipo 'list_3_4.Dog' non può essere utilizzato come parametro di tipo ' T 'nel tipo generico o nel metodo' list_3_4.Program.CompareToDefault (T) '. Non c'è alcuna conversione implicita del riferimento da 'list_3_4.Dog' a 'System.IComparable'.
Ecco il mio codice ...
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;
}
}
}
Come si aggiunge un tipo di riferimento come un "cane" di lavorare con messa in vendita di codice Jon Skeets ??? Capisco che Dog abbia bisogno di implementare IComparable ma non so come!
qual è la domanda? – elyashiv
La classe 'Dog' non sembra implementare' IComparable ', come specificato dal vincolo generico' dove T: IComparable '. –
+1 Per un esempio di codice che è possibile copiare, incollare e riprodurre con. Anche se una domanda sarebbe stata bella lol –