C#

[C#]ToString 재정의

DevStory 2022. 1. 9.

이번 포스팅에서는 C#에서 ToString() 함수를 재정의해야 하는 이유에 대해 소개합니다.

 


ToString() 함수를 재정의해야 하는 이유

C#에서 모든 자료형들은 최상위 클래스인 Object 클래스에서 파생됩니다. Object 클래스에는 값을 문자열로 반환하는 ToString() 함수가 존재하는데, 모든 자료형들은 Object 클래스에서 파생되므로 ToString() 함수를 사용할 수 있습니다.

 

다음 예제는 int형 변수에 ToString() 함수를 호출하여 값을 문자열로 반환합니다.

int intValue = 10;
string strValue = intValue.ToString();

Console.WriteLine("strValue: " + strValue);
// strValue: 10

하지만, 클래스와 같은 복잡한 자료형에서 ToString() 함수를 호출하면, 원하는 값을 얻지 못합니다.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();
        person.Name = "Ham";
        person.Age = 30;

        Console.WriteLine(person.ToString());
    }
}

실행 결과

클래스에서 재정의되지 않은 ToString() 함수를 호출하면 namespace이름.class이름 형식의 문자열이 반환됩니다. 따라서, 클래스에서 ToString() 함수를 재정의하여 원하는 문자열을 반환하도록 합니다.


ToString() 함수 재정의 방법

override 키워드를 사용하여 클래스 내부에서 ToString() 함수를 재정의합니다.

 

다음은 위의 예제에서 Person 클래스 내부에 ToString() 함수를 재정의합니다.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public override string ToString()
    {
        return "Name: " + Name + ", Age: " + Age;
    }
}

실행 결과


Visual Studio에서 ToString() 함수 재정의 단축키

만약, Visual Studio를 사용한다면 단축키를 사용하여 ToString() 함수를 편리하게 재정의할 수 있습니다.

 

▶ 순서 1.

클래스 내부에서 'ov'를 입력 후 Tab 키를 누릅니다.

 

▶ 순서 2.

첫 번째 순서를 진행 후 띄어쓰기를 합니다. 그리고 'to'를 입력 후 Tab 키를 누릅니다.

 

반응형

'C#' 카테고리의 다른 글

[C#]Hashtable 사용 방법  (0) 2022.01.12
[C#]콘솔(Console) 입력 및 출력  (0) 2022.01.09
[C#]Equals 재정의  (0) 2022.01.09
[C#]Convert.ToString()과 ToString() 차이  (1) 2022.01.09
[C#]checked, unchecked 키워드  (0) 2021.12.29

댓글