![](/api/v2/epubs/9788968481659/files/bg1a6.png)
지금 여기예요
� 421
열거형과 컬렉션
모든 .NET 객체에는 자신을
문자열로 변환하는 ToString()이란 메서드
가 있습니다. 기본적으로 이 메서드는 클래스 이름(MyProject.Duck)
을 반환하며 모든 객체의 기본 클래스인 Object에서 상속받은 메서드입니다. 이 메서드는 정말 쓸모가 많습니다. 예를 들어 문자열을 연결
하는 + 연산자는
자동으로 객체의
ToString()을 호출합니다. 그리고 객체를 전달할 때 Console.WriteLine()나 String.Format()은 이 메
서드를 자동으로 호출하는데, 이는 객체를 문자열로 변환하고자 할 때 정말 편하게 쓸 수 있는 기능이죠.
오리 정렬 프로그램으로 돌아가 봅시다. Main() 메서드에서 리스트를 초기화하는 부분 이후에 중단점을 설정하고 프로그램을 디버깅해 보
세요. ducks
변수에 마우스를 가져가면
현재 할당된 값을 보여 줍니다. 디버거상에서 List를 참조하는 변수를 살펴볼 때마다, 여러분은 + 버
튼을 클릭해서 해당 내용을 조사해 볼 수 있습니다.
ToString() 메서드를 오버라이드해서 객체 자신을 설명하도록 만들어 봅시다
다행히도 ToString()은 모든 객체의 기준 클래스인 Object의 virtual 메서드입니다. 따라서 ToString() 메서드를 오버라이드하기만
하면 게임 끝입니다. 이 때 IDE의 Watch 창에서 즉시 결과를 볼 수 있을 거예요! Duck 클래스를 열고 override를 입력하고 새 메서
드를 추가하세요. 스페이스 바를 누르면 IDE는 여러분이 재정의할 수 있는 메서드들을 보여 줄 것입니다.
ToString
()을 클릭해서 IDE에게 새로운 ToString() 메서드를 추가할 것이라고 알려 주세요. 다음과 같게 내용을 작성합니다.
public override string ToString()
{
return "A " + Size + " inch " + Kind.ToString();
}
프로그램을 실행하여 리스트를 다시 한 번 살려 보세요. 이제 IDE가 Duck 객체의 내용을 보여 줄 것입니다!
음, 기대했던 만큼 쓸모가 많지는 않군요. 이 리스트(“MyProject”는 우리가 사용했던 네임스페이스입니
다)에 6개의 Duck 객체가 있는 것을 볼 수 있을 거예요. duck 옆에 있는 + 버튼을 클릭하면 Kind와 Size
값을 볼 수 있지만, 한 번에 모두 볼 수 있다면 더 편하지 않을까요?
IDE의 디버거가 객체를 보여 줄 때,
IDE는 해당 객체의 ToString()
메서드를 호출해서 그 내용을 보여
줍니다.
Console.WriteLine(), String.
Format() 등에 값을 전달하는
대신 객체를 전달할 수 있으며,
이때 이 객체의 ToString()
메서드가 자동으로 호출됩니다.
int나 열거형 같은 값의 유형을
전달할 경우에도 동작합니다!
IDE는 조사식 창에 있는 메서드를 보여 줄 때
ToString() 메서드를 호출합니다만, Object 에서
상속받은 Duck 의 ToString() 메서드는 자신의
클래스 이름만 반환합니다. ToString() 메서드를
사용해서 더 많은 정보를 전달하면 좋지 않을까요?
Get Head First C# (개정3판): 상상을 초월하는 객체지향 C# 학습법 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.