効果的なC#のノート01
章使用のジェネリック
IComparableを
非ジェネリックメソッドおよびC#1.0のパラメータ、およびジェネリックメソッドのパラメータ変更する必要が
C#2.0新しく定義されたタイプの汎用インターフェイスシステムで使用することができます
C#2.0 IEquatable <T>インターフェイス
使用
public interface IEQuatable<T>
{
bool Equals(T other)
}
たIComparer <T>接口INT(T XとTのy)を比較します。
public int Compare(object x, object y)
{
Student s1 = x as Student;
Student s2 = y as Student;
return s1.Name.CompareTo(s2.Name);
}
IComparableを<T>接口INTのCompareTo(オブジェクトOBJ)
public int CompareTo(object obj)
{
Student student = obj as Student;
if (Age > student.Age)
{
return 1;
}
else if (Age == student.Age)
{
return 0;
}
else
{
return -1;
}
//return Age.CompareTo(student.Age);
}
二つのインターフェースのパラメータは、同じではありません
C#のジェネリッククラスは、マルチユースのための非常に強い必要性があります
2制約右のエントリ定義
一般的な構文の制約タイプの種類:C#が制約T使用する
クラスの
インターフェイス
stractを
puclic bool AreEqual<T>(T left,T right)
where T:IComparable<T>
{
return left.CompareTo(right)==0
}
上記のコードは、Tの制約の種類はIComparableを継承を示します