その先にあるもの…

클래스가 소멸할 때 멤버변수가 클래스인 것은 null이 되는지 궁금 본문

프로그래밍/C#

클래스가 소멸할 때 멤버변수가 클래스인 것은 null이 되는지 궁금

specialJ 2014. 9. 19. 10:15

C++을 오래 사용해서 그런지 C#을 처음 사용할 때 소멸자를 쓰지 않는 것에 상당이 어색함을 느낀다.

소멸자에 할당된 변수들을 모두 소멸시켜 줘야 하는데 C#은  그렇지 않기 때문에 자동으로 소멸되는 것인가?


class Test1

    {

        public int i = 0;

        public Test1() { i = 10; }

    }


    class Test2

    {

        public Test1 m_Test1;

        public Test2() { m_Test1 = new Test1(); }

        public void Release() { m_Test1 = null;}

    }


    class Program

    {

        static void Main(string[] args)

        {

            Test2 m_test = new Test2();

            m_test = null;

            System.GC.Collect();

        }

    }


m_Test = null; 을 하고 나면 바로 멤버 변수가 null이 되지 않는다. 

GC가 호출되지 않았기 때문에 GC를 호출하고 나면 멤버 변수가 null로 초기화 된다.



'프로그래밍 > C#' 카테고리의 다른 글

char to int  (0) 2014.12.04
Loop 문에서 list요소 삭제하기  (0) 2014.09.19
Dictionary value 변경  (0) 2014.09.01
WeakReference  (0) 2014.06.03
CreateInstance, InvokeMember  (0) 2014.04.21
Comments