IComparable 인터페이스

정영훈·2022년 11월 29일
1

C#프로그래밍

목록 보기
26/29

IComparable 인터페이스

인터페이스는 특정한 클래스를 만들 때 사용하는 규약이다. IComparable 인터페이스를 상속받은 클래스는 반드시 CompareTo() 메서드를 구현하여야 한다는 규약을 가지고 있다.

아래와 같은 클래스가 있다.

class Person : IComparable
{
    public int Id { get; set; }
    public string Name { get; set; }

    public Person(int id, string name)
    {
        Id = id;
        Name = name;
    }
}

class Program
{
    static void Main(string[] args)
    {
        List<Person> list = new List<Person>()
        {
            new Person(10,"jeong"),
            new Person(20,"park"),
            new Person(30,"choi"),
            new Person(15,"kim")
        };
        list.Sort();
        foreach (var item in list)
        {
            Console.WriteLine(item.ToString());
        }
    }
}

Person이라는 자료형을 리스트에 넣고 정렬을 시키고자 하니 오류가 발생하였다. 두개의 자료형 중 어느 자료형을 기준으로 정렬을 할지 모르기 때문이다. 그래서 다음과 같이 Person클래스를 수정하여 준다.

class Person : IComparable
{
    public int Id { get; set; }
    public string Name { get; set; }

    public Person(int id, string name)
    {
        Id = id;
        Name = name;
    }
    public int CompareTo(object obj )
    {
        Person person = obj as Person;
        return this.Id.CompareTo(person.Id);
    }
}
profile
경북소프트웨어고등학교 정보교사

0개의 댓글