Posted in: C# 언어

C# this() 생성자

class MyClass
{
    int a, b, c;

    public MyClass()
    {
        this.a = 25;
    }

    public MyClass(int b)
    {
        this.a = 25;
        this.b = b;
    }
 
    public MyClass(int b, int c)
    {
        this.a = 25;
        this.b = b;
        this.c = c;
    }
}

위 코드에서 생성자는 문법적으로 문제가 없지만 아쉬운 코드입니다. 생성자 안에 똑같은 코드가 중복되어 들어가 있으니까요.

이런 아쉬움을 해결해주는 것이 this()입니다.

class MyClass
{
    int a, b, c;

    public MyClass()
    {
        this.a = 25;
    }

    public MyClass(int b) : this()
    {
        this.b = b;
    }
 
    public MyClass(int b, int c) : this(b)
    {
        this.c = c;
    }
}

this()는 자기 자신의 생성자를 가리키고 생성자에서만 사용될 수 있습니다.

this()는 MyClass()를 호출하고 this(int)는 MyClass(int)를 호출합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다