私は非常にジェネリックスに新しく、簡単なクラスを書くことを試みています。このクラスは汎用的ですが、文字列メンバ変数の説明を並べ替えることもできます。Generics and Implementing IComparable
現時点で私は基本クラスを持っていますが、インターフェイスメンバーCompareTo()を実装しようとすると、実装されていないことを示す上部にエラーが表示されます。ここの問題は何ですか?
using System;
namespace GenericsPracticeConsole.Types
{
class SortableGenericType<T> : IComparable
{
private T t;
private string stringName;
public T name
{
get { return t; }
set { t = value; }
}
public int CompareTo(SortableGenericType<T> ourObject)
{
return stringName.CompareTo(ourObject.stringName);
}
}
}
私は 'if(obj.GetType()!= GetType())は-1を返します。'、これはあなたの比較がもはや反対称性でも再帰性でもないためです。 – porges
真。しかし、私はそのような場合に私が何をすべきかを知りません。あなたの提案は何ですか? –
2番目のCompareTo関数では、次の行を使用します。return CompareTo(obj as SortableGenericType);この行は、行の現在の項目を実際に参照せずに渡されたオブジェクトと現在のオブジェクトを暗黙的に比較しますか? –
CSharpened