C# 생성자와 종료자

객체는 생성자(Constructor)에 의해 만들어지고 종료자(Finalizen)에 의해 파괴됩니다.

생성자


생성자는 해당 형식(클래스)의 객체를 생성하는 일을 합니다. 사실 생성자를 구현하지 않아도 컴파일러에서 생성자를 만들어줍니다.

생성자는 프로그래머가 객체의 필드를 원하는 값으로 초기화 하고 싶을 때 생성자를 사용합니다.

class Hero
{
    public Hero()
    {
        HP = 100;
        MP = 50;
        Stamina = 50;
    }
    
    public Hero( int _HP, int _MP, int _Sta)
    {
        HP = _HP;
        MP = _MP;
        Stamina = _Sta;
    }

    public int HP;
    public int MP;
    public int Stamina;
}

생성자는 클래스와 이름이 같고 반환 형식이 없습니다. 그리고 오버로딩이 가능합니다.

종료자


종료자는 CLR의 가비지 컬렉터가 객체가 소멸되는 시점을 판단해서 종료자를 호출합니다.

하지만 우리가 CLR의 가비지 컬렉터가 언제 동작할지 예측할 수 없기 때문에 가급적 사용하지 말 것을 추천합니다.

class Hero
{
    ~Hero()
    {
        // 원하는 코드
    }
}

종료자는 클래스 이름 앞에 ~를 붙이면 됩니다. 매개 변수도 없고 한정자도 사용하지 않습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다