방법: ToString 메서드 재정의



C#의 모든 클래스 또는 구조체는 Object 클래스를 암시적으로 상속합니다. 

따라서 C#의 모든 개체는 해당 개체의 문자열 표현을 반환하는 ToString 메서드를 가져옵니다. 

예를 들어 int 형식의 모든 변수에는 해당 내용을 문자열로 반환할 수 있도록 하는 ToString 메서드가 있습니다.

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

사용자 지정 클래스 또는 구조체를 만들 때 해당 형식에 대한 정보를 클라이언트 코드에 제공하려면

ToString 메서드를 재정의해야 합니다.

클래스 또는 구조체의 ToString 메서드를 재정의하려면

  1. 다음 한정자 및 반환 형식으로 ToString 메서드를 선언합니다.

    public override string ToString(){}  
    
  2. 문자열을 반환하도록 메서드를 구현합니다.

    다음 예제에서는 클래스의 특정 인스턴스와 관련된 데이터뿐 아니라 클래스의 이름을 반환합니다.

    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    
        public override string ToString()
        {
            return "Person: " + Name + " " + Age;
        }
    }
    

    다음 코드 예제와 같이 ToString 메서드를 테스트할 수 있습니다.

    Person person = new Person { Name = "John", Age = 12 };
    Console.WriteLine(person);
    // Output:
    // Person: John 12




ToString 메서드와 함께 형식 문자열 및 다른 형식의 사용자 지정 서식을 사용하는 방법에 대한 자세한 내용은 형식 서식 지정을 참조하세요.

중요

이 메서드를 통해 제공할 정보를 결정하는 경우 신뢰할 수 없는 코드에서 클래스 또는 구조체가 사용될지 여부를 고려합니다. 악성 코드에서 악용될 수 있는 정보를 제공하지 않으면 주의해야 합니다.



ref : https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method


+ Recent posts