무효 클릭 IP 추적 중...
c#

[c#] 오버라이드 ToString은 뭐지? (커스텀)

꼬예 2022. 5. 26.

 

c# 을 공부하다보면, 클래스에 아래와 같이 override가 붙은 ToString()본적이 있을텐데요.

 

 

이 친구 정체를 알아보도록 하겠습니다.

 

 

 

1. 디폴트 ToString메서드

아래와 같이 간단한 Person 클래스를 만들어보았습니다.

 

 

그리고 클래스로 생성한 객체를 그대로 출력해보겠습니다.

어떤 값이 나올까요?

 

output:

 

클래스의 이름그대로 출력이 됩니다. 

 

해당 값의 타입은 string타입입니다. 

 

 

자 여기서 우리가 깨달아야할건 이겁니다.

 

분명 "객체 자체를 출력"했는데, "string형태의 특정값이 출력"된다라는건 내부적으로 해당 클래스명을 string형태로 출력하라는 메서드가 숨어 있다는 겁니다.

 

정말 그런지 확인해보겠습니다.

 

 

 

2. 커스텀 ToString 메서드

기존 클래스 ToString()이라는 이름의 메서드를 만들어보겠습니다.

 

 

그런데 부모 클래스에서 정의된 같은 이름의 ToString() 메서드가 있으니까 오버라이드 해야된다라는 경고 메세지가 뜹니다.

(이 부분이 이해가 안되시는 분들은 상속 포스팅을 읽고 와주시기 바랍니다.)

 

메세지에서 하라는대로 메서드에 override를 붙히고 아래와 같이 이름합쳐진 형태로 리턴값을 반환하도록 수정을 해보았습니다.

 

그리고 어떤 차이가 있는지 확인하기 위해 다시 출력을 해보겠습니다. 

output:

기존에는 단순히 클래스명을 출력했었는데 이번에는 우리가 커스텀한 값이 잘 출력되는걸 알 수 있습니다.

 

3. 정리

최종적으로 클래스를 생성 후, 그 객체를 출력하면 자동적으로 ToString()메서드가 실행 된다는걸 우리는 알 수 있었습니다.

 

 

이 글과 읽으면 좋은글

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글