Section 39.7: 파생된 클래스들의 종료자 (Finalizer) 호출

개체 그래프에 대한 사용이 종료될 때 (finalized), 그 순서는 생성시의 반대가 된다. 예) 파생 클래스의 종료자가 먼저 수행되고 이후 기본 클래스의 종료자가 수행된다. 다음 코드 예제를 확인한다:

class TheBaseClass { ~TheBaseClass() { Console.WriteLine("Base class finalized!"); } } class TheDerivedClass: TheBaseClass { ~TheDerivedClass() { Console.WriteLine("Derived class finalized!"); } } // 객체가 접근 불가능한 상태가 되도록 만들기 위해 // 인스턴스를 변수에 할당하지 않는다. new TheDerivedClass(); // 예제가 동작하는 방식을 보여주기 위한 코드 // 다른 경우에는 사용하길 권하지 않는다. GC.Collect(); // Derived class finalized! // Base class finalized!
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts