클래스 계층 구조에서의 New 및 Finalize 메서드 작동 방식

업데이트: 2007년 11월

클래스의 인스턴스를 만들 때마다 New라는 프로시저가 해당 개체에 존재하면 CLR(공용 언어 런타임)에서는 이 프로시저를 실행하려고 합니다. New는 개체의 다른 코드가 실행되기 전에 새로운 개체를 초기화하는 데 사용되는 constructor라는 프로시저 형식에 해당합니다. New 생성자는 파일을 열거나, 데이터베이스에 연결하거나, 변수를 초기화하거나, 개체를 사용하기 위해 먼저 수행해야 하는 다른 작업을 처리하는 데 사용할 수 있습니다.

파생 클래스의 인스턴스가 작성될 때에는 기본 클래스의 Sub New 생성자가 먼저 실행된 다음 파생 클래스의 다른 생성자가 실행됩니다. 그 이유는 Sub New 생성자의 첫째 코드 줄에서 구문 MyBase.New()를 사용하여 클래스 계층 구조에서 바로 위에 있는 클래스의 생성자를 호출하기 때문입니다. 그런 다음 기본 클래스의 생성자에 도달할 때까지 클래스 계층 구조의 각 클래스에 대해 Sub New 생성자가 호출됩니다. 이때 기본 클래스의 생성자에 있는 코드가 실행된 다음, 모든 파생 클래스의 각 생성자에 있는 코드가 실행되고, 가장 많이 파생되는 클래스의 코드가 마지막으로 실행됩니다.

생성자 및 상속

개체가 더 이상 필요하지 않으면 CLR에서는 메모리를 확보하기 전에 해당 개체에 대해 Finalize 메서드를 호출합니다. 상태 정보를 저장하고, 파일을 닫고, 데이터베이스 연결을 끊고, 개체를 해제하기 전에 수행해야 하는 기타 작업과 같은 정리 작업을 수행하므로 Finalize 메서드를 destructor라고 합니다.

생성자 상속2

참고 항목

개념

개체 수명: 개체가 만들어지고 소멸되는 방법