estoy recibiendo el siguiente mensaje de error al intentar ajustar Listing 3.4 del libro de Jon Skeet, C# en profundidad ...Ejecución IComparable <T>
El tipo 'list_3_4.Dog' no se puede utilizar como parámetro de tipo ' T 'en el tipo genérico o método' list_3_4.Program.CompareToDefault (T) '. No hay conversión de referencia implícita de 'list_3_4.Dog' a 'System.IComparable'.
Aquí está mi código ...
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;
}
}
}
¿Cómo agrego un tipo de referencia como un "perro" para trabajar con código de Jon Skeets lista ??? Entiendo que Dog necesita implementar IComparable, ¡pero no sé cómo!
¿cuál es la pregunta? – elyashiv
Su clase 'Dog' no parece aplicar' 'IComparable, según lo especificado por la restricción genérica' donde T: IComparable '. –
+1 Para una muestra de código que podría copiar, pegar y jugar. Aunque una pregunta habría sido agradable lol –