Jon Skeet の本 C# in depth からリスト 3.4 を微調整しようとすると、次のようなエラー メッセージが表示されます。
型 'list_3_4.Dog' は、ジェネリック型またはメソッド 'list_3_4.Program.CompareToDefault(T)' の型パラメーター 'T' として使用できません。「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;
}
}
}
「犬」のような参照型を追加して、Jon Skeets のコード リストを操作するにはどうすればよいですか? Dog が IComparable を実装する必要があることは理解していますが、その方法がわかりません!