포스트를 만든 목적
Effective C# 을 읽고, 공부하려고 만들었다.
내용
관련 링크
- http://msdn.microsoft.com/ko-kr/library/yh598w02.aspx : using에 대한 설명
- http://msdn.microsoft.com/ko-kr/library/zwc8s4fz%28VS.90%29.aspx : try/finally 에 대한 설명
- http://msdn.microsoft.com/ko-kr/library/dszsf989%28v=VS.90%29.aspx : try/catch/finally 에 대한 설명
여기서 말하는 자원이란 무엇인가?
물리적 메모리를 말하며, 좀 더 정확하게 말하면, 힙에 올라가는 변수를 뜻한다.
왜 using과 try/finally를 이용해야 하는가?
자원을 해제하는데 도와주기 때문이다. 좀 더 구체적으로 말하면, using 이나 try/finally 를 이용하면, 가비지 컬렉션이 좀 더 쉽게 자원해제를 할 수 있게 도와준다.
using 은 Dispose() 호출 코드를 자동으로 만들어 주지만, 다른 종류의 Unmanaged 자원이 많을 경우, 코드 들여쓰기가 심하게 될 수 있다. 이럴 경우, try/finally 를 이용하면 된다. 자세한건 관련 링크를 보도록 해라.
어떻게 using 사용해야 좋은가?
두 코드를 보고 그 이유를 스스로 찾길 바란다.
try/finally도 설명해 줄 수 있는가?
쉽게 요약해서 try 후에 예외가 있건 없건 finally 구역이 실행 된다.
결론
- Unmannaged 자원들의 경우, using, try/finally를 이용하자.
여담
- 졸렵다.
'책 정리 > Effective C#' 카테고리의 다른 글
item 20, interface의 구현과 virtual 메서드의 overriding을 구분하라. (0) | 2010.07.10 |
---|---|
item 19, 상속보다는 interface를 정의하고 구현하는 것이 좋다. (1) | 2010.07.07 |
item 18, 표준 Dispose 패턴을 구현하라. (2) | 2010.07.06 |
item 17, boxing과 unboxing을 최소화하라 (0) | 2010.07.04 |
item 16, Garbage를 최소화 하라. (0) | 2010.07.03 |
item 14, 연쇄적인 생성자 호출을 이용하라. (4) | 2010.07.02 |
item 13, static 클래스 멤버는 static 생성자를 사용하여 초기화 하라. (0) | 2010.07.01 |
item 12, 할당문보다는 변수 초기화를 사용하는 편이 더 좋다 (0) | 2010.06.30 |
item 11, foreach 루프가 더 좋다. (0) | 2010.06.29 |
item 10, GetHashCode()의 함정을 유의하라 (0) | 2010.06.27 |
최근댓글