본문 바로가기
C#/Effective C#

[Effective C#] Item6 ~ Item 10

by 코모's 2022. 7. 8.
반응형
  1. [Item6] nameof 연산자를 적극 확용하라.
    1. 항상 로컬이름을 문자열로 반환하는 역할을 한다.
    2. 심볼의 이름을 평가하며 타입, 변수, 인터페이스, 네임스페이스 에 대해 사용할 수 있다.
    3. 심볼의 이름을 바꾸거나 수정할 때도 손쉽게 반영 가능하다.
    4. 항상 로컬 이름을 문자열로 반환한다.
      1. Ex) 완전 정규화된 이름이 System.Int.MaxValue 이더라도 항상 로컬이름 MaxValue를 반환
  2. [Item7] delegate를 이용하여 콜백을 표현하라.
    1. delegate를 이용하면 타입 안정적인 콜백을 정의할 수 있다.
    2. .Net Framework 라이브러리는 Predicate<T>, Action<T>, Func<T>와 같은 형태로 자주 사용되는 delegate를 정의해두고 있다.
      1. 더보기
        Predicate<T> : 조건을 검사하여 bool값을 반환하는 델리게이트
        Func<> : 여러 개의 매개변수를 받아 특정 타입의 단일 결과값을 반환하는 델리게이트
        Func<T, bool> = Predicate<T>
        Action<> : 여러 개의 매개변수를 받지만 결과값의 타입이 void인 델리게이트
  3. [Item8] 이벤트 호출시에는 null조건 연산자를 사용하라
    1. Ex) Action?.Invoke();
  4. [Item9] 박싱과 언박싱을 최소화 하라
    1. 둘다 성능에 좋지 않은 영향을 미친다.
    2. 수행하는 과정에서 임시객체가 생성되는데 이로 인해 버그가 발생 할 수 도 있다.
      1. 박싱 : 값(Value) 타입의 스택구조 객체를 타입이 정해져 있지 않은 임의의 참조(reference) 타입의 힙구조 내부에 포함시키는 방법
      2. 언박싱 : 박싱되어 있는 참조타입의 객체로부터 값타입 객체의 복사본을 가져오는 방법
  5. [Item10] 베이스 클래스가 업그레이드 된 경우에만 new 한정자를 사용하라.
    1. 베이스 클래스에서 이미 사용중인 메서드를 재정의하여 완전 새로운 메서드를 만들때 new 사용

 

 

 

참거 - Effective C# <강력한 C# 코드를 구현하는 50가지 전략과 기법, 이펙티브>, 빌 와그너, 김명신, 한빛미디어

반응형