Microsoft MVP성태의 닷넷 이야기
.net5에서 소멸자가 어떻게 바뀐건가요? [링크 복사], [링크+제목 복사],
조회: 12774
글쓴 사람
kss
홈페이지
첨부 파일
 

class A
    {
        public A()
        {
            Console.WriteLine("ctor");
        }
        ~A()
        {
            Console.WriteLine("final");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
        }
    }

닷넷프레임워크에선 메인종료전에 소멸자호출하는데
닷넷5는 그렇지가않네요. 설명부탁드립니다~








[최초 등록일: ]
[최종 수정일: 5/31/2021]


비밀번호

댓글 작성자
 



2021-05-31 05시36분
재미있는 점을 발견하셨군요. ^^ 다음의 문서를 보면,

Finalizers (C# Programming Guide)
; https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/destructors

아래와 같은 문구를 볼 수 있습니다.

"In .NET Framework applications (but not in .NET Core applications), finalizers are also called when the program exits."

즉, .NET Core 시절부터 프로그램 종료로 인한 finalizer의 호출은 보증되지 않았습니다.
정성태

NoWriterDateCnt.TitleFile(s)