Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 클래스에는 소멸자를 몇 개까지 선언할 수 있을까?

C#에서 소멸자(Destructor)는 클래스의 특별한 메서드로, 클래스 내부에서 객체 또는 인스턴스를 소멸시키는 역할을 담당합니다.

한 클래스 안에는 소멸자를 단 하나만 선언할 수 있습니다.

C# 소멸자의 주요 특징

  • 소멸자는 어떠한 매개변수도 받지 않습니다.

  • 소멸자 이름은 물결표(~) 기호로 시작합니다.

  • 소멸자(~)는 구조체(Struct)에는 정의할 수 없습니다.

  • 소멸자는 직접 호출할 수 없으며, 자동으로 호출됩니다.

  • 소멸자는 객체의 기본 클래스에 대해 Finalize를 암묵적으로 호출합니다.

소멸자 예제 코드

class Demo{
    ~Demo(){ // 종료자(Finalizer)
        // 정리(cleanup) 문...
    }
}
class Program{
    static void Main(){
        Console.ReadLine();
    }
}

종료자(finalizer)는 객체의 기본 클래스에 대해 Finalize를 암묵적으로 호출합니다. 따라서 종료자 호출은 내부적으로 아래와 같은 코드로 암묵적으로 변환됩니다.

protected override void Finalize(){
    try{
        // 정리(cleanup) 문...
    }
    finally{
        base.Finalize();
    }
}

프로그래머는 종료자가 언제 호출될지 직접 제어할 수 없습니다.

만약 하나의 클래스에 두 개 이상의 소멸자를 선언하면 컴파일러는 다음과 같은 오류를 발생시킵니다.

'Demo' already defines a member called '~Demo'

class Demo{
    ~Demo(){
    }
    ~Demo(){
    }
}
class Program{
    static void Main(){
        Console.ReadKey();
    }
}