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/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
39.9: 생성자와 속성값 초기화 순서 (0) | 2022.03.24 |
---|---|
39.8: Static 생성자에서의 예외 발생시의 동작 (0) | 2022.03.23 |
39.6: 기본 (base) 클래스의 생성자 호출하기 (0) | 2022.03.15 |
39.5: 생성자에서 다른 생성자 호출하기 (0) | 2022.03.14 |
39.4: Static 생성자 강제 호출하기 (0) | 2022.02.23 |