C# compareTo(), sort() 질문드립니다
-
게시물 수정 , 삭제는 로그인 필요
1. CompareTo()메서드에서 Name의 경우 if비교구문에서 Breed가 같을 때
-Name.CompareTo(other.Name)을 호출하여 결국 다시 똑같은 CompareTo()메서드로 돌아가는 형태로 보이는데,,, name에 관한 비교문은 존재하지 않잖아요. 근데 이런 구조가 어떻게 name을 정렬할 수 있는지를 질문드립니다. 이 부분이 이해가 가지 않아요.
2. 메인메서드에서 dogs.Sort()를 하기만 하면 Dog클래스에서 정의한 CompareTo메서드대로 정렬을 해주잖아요. 이게 C#의 내부적으로 어떤 메커니즘에 의해서 sort메서드만 호출해도 compareTo메서드가 호출되어서 정렬되는지 궁금해요.
3. 또한 CompareTo메서드가 현재 코드 기준으로 Dog other을 매개변수로 받고 있는데 dogs.sort()에서 dogs인스턴스가 other로 들어가게 되는건지요? 그렇다면 Breed를 other.Breed와 비교하고 있는데 여기서 other.Breed말고 비교기준인 Breed는 무엇인지요...제 생각엔 dogs리스트의 Breed내용을 뜻하는 것 같은데...그러면 other.Breed가 아니라 Breed가 dogs를 매개변수로 받고 있는 것 같은데 그러면 매개변수로 정의된 Dog other은 무엇인지....이게 책에서는 compareTo메서드를 저렇게 정의하면 메인메서드에서 dogs.sort()했을 때 알아서 정렬된다라고만 나와있어서 코드를 현재 제가 짜기는 커녕 개념이 뒤죽박죽이라 코딩해석도 안되네요..답답해서 질문드립니다
-Name.CompareTo(other.Name)을 호출하여 결국 다시 똑같은 CompareTo()메서드로 돌아가는 형태로 보이는데,,, name에 관한 비교문은 존재하지 않잖아요. 근데 이런 구조가 어떻게 name을 정렬할 수 있는지를 질문드립니다. 이 부분이 이해가 가지 않아요.
2. 메인메서드에서 dogs.Sort()를 하기만 하면 Dog클래스에서 정의한 CompareTo메서드대로 정렬을 해주잖아요. 이게 C#의 내부적으로 어떤 메커니즘에 의해서 sort메서드만 호출해도 compareTo메서드가 호출되어서 정렬되는지 궁금해요.
3. 또한 CompareTo메서드가 현재 코드 기준으로 Dog other을 매개변수로 받고 있는데 dogs.sort()에서 dogs인스턴스가 other로 들어가게 되는건지요? 그렇다면 Breed를 other.Breed와 비교하고 있는데 여기서 other.Breed말고 비교기준인 Breed는 무엇인지요...제 생각엔 dogs리스트의 Breed내용을 뜻하는 것 같은데...그러면 other.Breed가 아니라 Breed가 dogs를 매개변수로 받고 있는 것 같은데 그러면 매개변수로 정의된 Dog other은 무엇인지....이게 책에서는 compareTo메서드를 저렇게 정의하면 메인메서드에서 dogs.sort()했을 때 알아서 정렬된다라고만 나와있어서 코드를 현재 제가 짜기는 커녕 개념이 뒤죽박죽이라 코딩해석도 안되네요..답답해서 질문드립니다
#c# compareto #c# compareto 함수 #c# compareto multiple fields #c# compareto string #c# compareto datetime #c# compareto int #c# compareto return values #c# compareto bool #c# compareto object #c# compareto example