2010.07.02 02:49 책 정리/Effective C#

포스트를 만든 목적

Effective C# 을 읽고 내가 공부하기 위해서 만들었다.

내용

관련 링크

여기서 말하는 연쇄적인 생성자 호출이란, 생성자가 호출하는 생성자를 뜻한다.

C++ 에선 이런 경우, private 로  함수 하나 선언해서, 생성자에서 호출 해서 구현하고 있다.

언제 생성자 내에서 생성자를 사용하는게 좋은가?

  • 생성자들 구현 코드가 중복될 경우(생성자들의 교집합을 한 생성자에 작성하고, 이를 수행한다.) - 코드 생략

주의해야 할 점은 무엇인가?

  • 생성자 내에서 연쇄적으로 호출된 생성자가 또 다시 다른 생성자를 호출하는 행동은 주의해야 한다. 나중에 어떤 생성자를 거쳤는지 알기 힘들기 때문이다.

클래스의 내부 동작 순서를 알면, 이해가 좀 더 쉽게 될 것이다.

클래스의 내부 동작 순서는 어떻게 되는가?

  1. static 멤버 변수가 있다면, 이를 0으로 초기화
  2. static 멤버 변수가 있고, 선언시 초기화 루틴이 있다면 수행
  3. 기반 클래스가 있다면, 기반클래스의 static 생성자 수행
  4. static 생성자 수행
  5. 멤버 변수가 있다면, 0으로 초기화
  6. 멤버 변수가 있고, 선언시 초기화 루틴이 있다면, 수행
  7. 기반 클래스가 있다면, 기반 클래스의 생성자 수행
  8. 생성자 수행

결론

  • 생성자가 많고, 같은 부분이 겹친다면, 무조건 쓰자.

여담

  • 무척 졸리다!
  • 위에 "위임 생성자" 라고 표기를 했는데, 마땅히 대체될 명사가 없어, "류광님의 블로그"에서 쓰인데로 썻다.


posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. 2010.07.03 02:44  Addr  Edit/Del  Reply

    비밀댓글입니다

  2. 2010.07.03 04:03  Addr  Edit/Del  Reply

    비밀댓글입니다