이 포스트를 만든 목적
- 이젠 습관인가?
이 포스트의 준비 상황
- gVim 7.2
- Microsoft Visual C# 2010 Express
참조 링크
내용
new 한정자는 무엇인가?
- http://zmeun.tistory.com/50 -- 링크로 대체한다. 코드는 다음:
왜 new 한정자를 제목의 경우에만 사용 해야 하는가?
- virtual method는 상속기반에서 윗단 것을 호출 했을 때, 아랫단 것으로 호출 하는 성질을 표준화 한것이다. 하지만 이를 new로 받아 주면, 표준화 한 virtual method 사용법이 완전히 달라진다.
- 상속 기반에서 윗단 일반 method는 아랫단에서도 변하지 않겠다는 표준화된 방법이다. 이를 아랫단에서 new 로 재정의 한다면, 이 표준화 된 방법이 완전히 달라진다.
결론
- 상속 윗단을 건들 수 없는데, 윗단이 변경 되어서, 아랫단 이름과 중첩이 되어 버리는 상황에서 이미 내가 만든 라이브러리가 전세계적으로 배포되었다면, 모두에게 업데이트 받으라고 일러주기에는 힘들다. 이럴 때, new 한정자를 이용하여, 처리해주면 좋다.
하지만 장기적으로 봤을 땐, 이름을 다르게 짓는게 더 좋다. new 한정자는 어쩔 수 없을 때, 쓰는 마법같은 녀석이라고 생각하자.
여담
- 무척 졸려울 뿐이다.
'책 정리 > Effective C#' 카테고리의 다른 글
item 34, 웹 API는 큰 단위로 작성하라 (0) | 2010.08.01 |
---|---|
item 33, 타입의 가시성을 제한하라. (0) | 2010.08.01 |
item 32, 작고 응집도가 높은 어셈블리가 더 좋다. (0) | 2010.07.31 |
item 31, 작고 단순한 메서드가 더 좋다. (0) | 2010.07.25 |
item 30, CLS를 준수하는 어셈블리가 더 좋다. (0) | 2010.07.25 |
item 28, 형변환 연산자의 구현을 피하라 (0) | 2010.07.21 |
item 27, ICloneable의 구현을 피하라 (4) | 2010.07.20 |
item 26, IComparable과 IComparer를 이용하여 순차관계를 구현하라 (6) | 2010.07.19 |
item 25, serializable 타입이 더 좋다. (0) | 2010.07.18 |
item 24, 명령적 프로그래밍보다 선언적 프로그래밍이 더 좋다. (0) | 2010.07.14 |
최근댓글