効果的なC#のノート01

効果的なC#のノート01

章使用のジェネリック

IComparableを そして、IEquatable インタフェース
非ジェネリックメソッドおよび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を継承を示します タイプ

おすすめ

転載: www.cnblogs.com/clar/p/11220908.html