이 포스트를 만든 목적
- 왜 그런지 알고 싶어서 공부하려고
이 포스트의 준비물
- gVim 7.3 (7.3을 쓰고 있긴 한데, 뭐가 더 좋아졌는지 모르겠다. :) )
참고 서적
- Effective C#
내용
왜 reflection을 과도하게 사용하면 안되는가?
- reflection으로 객체 생성할 때, 객체가 생성 디지 않을 수 있는 문제 때문에
맛보기 코드 - reflection 사용시 NULL 이 나올 수도 있다는 예제
- reflection으로 메서드 호출시, 현재 잘못 되고 있는지 알기가 힘들기 때문에
맛보기 코드 - reflection 으로 메서드 호출시, 메서드 호출이 안되는 경우 예제
- reflection으로 필드 접근시, 필드 이름을 잘못 기입해 접근을 못할 수 있기 때문에
맛보기 코드는 생략한다. 이 덕분에 null 접근하여, 예외가 발생 될 수 있다는 것만 알면 된다.
그러면 어떻게 대처 해야 하는가?
- attribute를 이용한다.
- 맛보기 코드 생략, 쉽게 생각해서, 책갈피를 꽂아둔다고 보면 된다.
- interface를 통해 접근한다.
- 맛보기 코드 생략, 쉽게 생각해서, 헤더파일의 공유라고 보면 된다.
결론
- 어셈블리 동적 바인딩이 가능하게 해주는 reflection를 조심해서 쓰자.
여담
- 책보는데 1시간 ...
'책 정리 > Effective C#' 카테고리의 다른 글
item 48, 활용할 수 있는 다양한 툴과 리소스에 대해서 알아두라. (0) | 2010.08.31 |
---|---|
item 47, 안전한 코드가 더 좋다. (0) | 2010.08.29 |
item 46, Interop를 최소화하라 (0) | 2010.08.27 |
item 45, 견고한 예외 보증 기법이 더 좋다. (0) | 2010.08.25 |
item 44, 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라. (1) | 2010.08.23 |
item 42, reflection을 단순화하기 위해서 attribute를 사용하라 (0) | 2010.08.18 |
item 41, 새로운 구조체보다는 DataSet이 좋다. (0) | 2010.08.15 |
item 40, 적절한 collection 개체를 이용하라 (0) | 2010.08.14 |
item 39, 닷넷의 유효성 검증 기능을 사용하라. (0) | 2010.08.10 |
item 38, 데이터 바인딩을 사용하라. (0) | 2010.08.04 |
최근댓글