C#

59.C# - ToString메서드오버라이드 ( ToString Method Override )

Godffs 2009. 8. 14. 21:07
반응형
- Object클래스에 정의되어 있는 ToString()메서드는 기본적으로 클래스의
   이름값을 반환시켜준다.

- 또는 정수형과 같이 대표가 되는 값이 들어있는 경우는 그 값을 문자열로
   변환해서 출력해준다.

- 내가 만든 클래스의 대표가 되는 속성 또는 값을 외부에 인스턴스명으로
   사용해서 출력 할 때는 ToString()메서드를 재정의(오버라이드) 후 사용한다.

ToString Method Override 관련 예제입니다.


Program.cs
using System;
public class ToString메서드오버라이드
{
    public static void Main()
    {
        //문자열 변수 : 클래스명
        System.Collections.Stack s = new System.Collections.Stack();
        Console.WriteLine("{0}", s.ToString());//기본값 : 클래스명

        //정수형 변수
        Int32 intNum = 1234;
        Console.WriteLine("{0}", intNum.ToString()); //정수형->문자열

        //내가 만든 클래스에 ToString()을 요청했을때
        //특정한 필드의 값을 바로 출력...
        Car car = new Car(); //Car클래스 생성
        Console.WriteLine(car.Name); //기본값 자동차 출력
        Console.WriteLine(car);
       
        Car sonata = new Car("소나타");
        Console.WriteLine(sonata.Name); //"소나타" 출력

        //ToString()메서드 오버라이드
        Console.WriteLine("{0}",sonata.ToString());
 //해당객체에는 ToString가 만들어져야 하며, override로 선언하여 사용한다.
        Console.WriteLine("{0}", sonata);
    }
}

Car.cs
using System;

public class Car
{
    private string name; //Field

    public string Name // Property
    {
        get { return name; }
        set { name = value; }
    }

    public Car() //Constructor
    {
        this.name = "자동차";
    }

    public Car(string name)
    {
        this.name = name;
    }

    public override string ToString()
    {
        return name; //name값 출력
    }
}

결과화면

반응형