我應該調用接口的方法排序在其他類,其中包括列表 但我無法找到合適的解決方案,但我做的例子我的老師。接口IComparer的錯誤沒有重載方法「排序」需要兩個參數
錯誤:沒有過載的方法爲「排序」需要兩個參數。
類學生:人
public class SortByName : IComparer
{
int IComparer.Compare(object obj1, object obj2)
{
Student st1 = (Student)obj1;
Student st2 = (Student)obj2;
return st1.Name.CompareTo(st2.Name);
}
}
類AcademyGroup:
List<Student> group;
--------//---------
public void Sort()
{
group.Sort (group, new Student.SortByName());
}
相反的指定或者非通用接口'IComparer'或者通用'IComparer'代替繼承'abstract'基類'Comparer '可能是一個好主意。仍然只需要提供一種方法。通過這種方式,您的類將成爲* IComparer和IComparer *,並且基類爲您提供必要的免費類型檢查。 –
你甚至可以用lambda創建'Comparer'的實例。 'var sortByName = Comparer .Create((st1,st2)=> st1.Name.CompareTo(st2.Name));'。 –