반응형

 

개발자들은 클래스를 많이 생성하고 사용한다.

클래스 안에는 필드/속성/메서드/생성자 등 개발자가 만들 수 있는 것은 다양하다.

 

클래스는 최상위 클래스 Object 클래스를 상속한다. 내가 상속을 하지 않아도, 무조건 상속한다.

 

그중에서도 virtual method로 정의된, ToString 메서드를 적극 활용하는 것이 좋다.

 

간단한 예제를 만들어 보았다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Person {
    #region /// 속성
    public string Name { get; private set; }
    public int Age { get; private set; }
    public string Job { get; private set; }
    #endregion
 
    #region /// 메서드
    private void Clear() {
        Name = string.Empty;
        Age = 0;
        Job = string.Empty;
    }
    public string Print() => $"이름은 {Name} 이고, 나이는 {Age} 살이고, 직업은 {Job} 이다.";
    public override string ToString() => $"이름은 {Name} 이고, 나이는 {Age} 살이고, 직업은 {Job} 이다.";
    #endregion
 
    #region /// 생성자
    public Person() {
        Clear();
    }
    public Person(string name, int age, string job) : this() {
        Name = name;
        Age = age;
        Job = job;
    }
    #endregion
}
cs

 

클래스고, Name / Age / Job이라는 속성을 가지고 있다.

생성자에서 name / age / job 이라는 매개변수를 받아서, 속성 값을 셋팅해준다.

일반적으로는 내가 셋팅한 속성 값들에 대해 출력하기 위해서 Print라는 메서드를 만들어 사용한다. 하지만 위에서도 말했던 거처럼, 모든 클래스는 Object 클래스를 상속받기 때문에 ToString 메서드를 재사용하는 것이 더 좋은 코드라고 생각한다.

 

1
2
3
var person = new Person("cmang9"20"developer");
person.Print();
person.ToString();
cs

클래스를 생성하고, Print / ToString 메서드를 각각 실행하면, 우리가 원하는 동일한 결과값을 얻을 수 있다.

 

결과는 동일하다. 굳이 새로운 메서드를 하나 더 만드는 것이 아니라, Object 클래스의 ToString 메서드를 재사용하는 것을 추천한다.

 

반응형

+ Recent posts