인터페이스 예제
public class Student
{
public int m_num { get; set; }
public string m_name { get; set; }
}
public class StudentList
{
public List<Student> m_list = new List<Student>();
Ascending m_sortAscending = new Ascending();
Descending m_sortDescending = new Descending();
public int count { get { return m_list.Count; } }
public void Add(Student friend) { m_list.Add(friend); }
public void Clear() { m_list.Clear(); }
public void SortAscending() { m_list.Sort(m_sortAscending); }
public void SortDescending() { m_list.Sort(m_sortDescending); }
public class Ascending : IComparer, IComparer<Student>
{
public int Compare(Student x, Student y)
{
return x.m_num.CompareTo(y.m_num);
}
public int Compare(object x, object y)
{
return Compare((Student)x, (Student)y);
}
}
public class Descending : IComparer, IComparer<Student>
{
public int Compare(Student x, Student y)
{
return y.m_num.CompareTo(x.m_num);
}
public int Compare(object x, object y)
{
return Compare((Student)x, (Student)y);
}
}
}