c#2016.10.18 17:07

C#을 처음 접하면 이런 내용을 접할 수 있다.


C#은 가비지 컬렉터가 메모리 해제를 자동으로 해줘서 메모리 해제를 안해줘도 된다.


Object C로 아이폰 개발할때 메모리 해제 때문에 엄청 귀찮았던 기억이 난다.


근데 막상 실행해서 확인해보면 메모리가 해당 객체의 사용이 끝나도 바로 해제가 되지 않는다.

한마디로 메모리 해제가 정확히 언제되는지 모른다는것이다.(물론 가비지 컬렉터를 수동으로 실행할 수는 있다)


그렇다면 이방법을 어떻게 해결할까? 


답은 Using이다.

Using이 그냥 어떤 클래스나 객체를 사용한다고 '선언' 하는 부분으로 사용할 수 도 있지만


using(메모리를 할당받는 객체의 선언)

{

실행코드

}


이런식으로 감싸주면 Using문을 빠져나오는 시점에 메모리 해제를 시켜준다.


참고로 메모리를 할당하는 모든 객체는 기본적으로 IDispossable이라는 클래스를 상속받는다.


이 IDispossable이라는 객체가 바로 메모리를 해제하는 역활을 한다.




Posted by 동동(이재동)