C#2008/09/23 00:04

안녕하세요 이번시간에는 ToString() 메서드를 Override하여 간단하게 Custum Object를 대표하는 문자열을 표현하는 방법에 대해서 알아보도록 하겠습니다.

아래는 이번시간에 우리가 사용할 같이 간단한 Music Structure를 포함하는 Code입니다. (Class도 마찬가지로 사용할 수 있습니다.)

namespace WPFKorea
{
    public struct Music
    {
        public string Title;
        public string Singer;
    }

    class Program
    {

        static void Main(string[] args)
        {

            Music Music = new Music();
            Music.Singer = "원더걸스";
            Music.Title = "NoBody";

            Console.WriteLine(Music);

        }
    }
}
그리고 이 객체를 ListBox에 Add하거나 Console.Write 또는 WriteLine 메서드를 사용하여 출력할경우 어떻게 출력될가요? 결과는 아래 그림처럼 WPFKorea.Music이라표시됩니다. 기본적으로 ToString 메서드는 해당 객체의 타입을 리턴합니다.


만약에 위와 같은 코드에서 노래의 제목을 출력하고자 한다면 System.Object Class의 ToString 메서드를 Override해서 구현 해주시면됩니다. ( 모두들 아시다 시피 CLR에서 제공하는 모든 객체는 System.Object Class를 상속받아 구현됩니다. 명시적으로 상속을 시키지 않더라도 기본적으로 System.Object의 내용을 포함합니다.)

아래와 같이 Music객체를 수정 하시면됩니다.

    public struct Music
    {
        public string Title;
        public string Singer;
        public override string ToString()
        {
            return Title;
        }
    }

간단하죠? 실행을 시켜보면 아래와 같이 제목이 표시되는 것을 확인 할 수 있습니다.


사용자 삽입 이미지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
TAG ,