36.3 생성자, 메서드, 소멸자 실행 시점 살펴보기
생성자, 메서드, 소멸자에 대한 간단한 형태와 실행 시점을 비교하는 예제를 만들어 보겠습니다. 다음 예제는 닷넷 코어 앱인지, 닷넷 프레임워크 앱인지에 따라 실행 결과가 조금 다릅니다. 소멸자와 관련한 내용을 보려면 닷넷 프레임워크(.NET Framework) 기반으로 콘솔 앱을 만드세요1 다음 내용을 입력한 후 실행해 보세요.
생성자, 메서드, 소멸자의 소멸 실행 시점 확인: ConstructorToDestructor.cs
using static System.Console; public class DestructorTest { public DestructorTest() //생성자 { WriteLine("[1] 생성"); } public void Run() //메서드 { WriteLine("[2] 실행"); } ~DestructorTest() //소멸자 { WriteLine("[3] 소멸"); } } class ConstructorToDestructor { static void Main() { DestructorTest test = new DestructorTest(); test.Run(); //GC.Collect(); } }
실행 결과
[1] 생성 [2] 실행 [3] 소멸
DestructorTest 클래스의 인스턴스를 생성할 때 생성자가 맨 먼저 호출되고, 그다음 Run() 메서드는 명시적으로 호출할 때 실행됩니다. 개체를 다 사용하고 나서 Main() 메서드가 끝나는 시점에 소멸자가 실행되는 형태로 개체를 하나 만들고 소멸되는 내용을 살펴볼 수 있습니다.