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

[Effective C#] Item1 ~ Item5

by 코모's 2022. 7. 8.
반응형
  1. [Item1] 지역변수를 선언할 때는 var를 사용하는 것이 낫다.
    • C# 언어가 익명 타입을 지원한다.
    • 개발자가 코드를 읽을때 쉽게 짐작할 수 없다면 명시적 타입을 기술하는것이 낫다.
  2. [Item2] Const 보다는 readonly가 좋다.
    • 컴파일 타임 상수(Const)보다는 런타임 상수(readonly)를 사용하라
    • 컴파일 타임 상수는 성능이 매우 중요하고 상수의 값이 절대 바뀌지 않을때만 사용
    • 더보기
      컴파일타임과 런타임
      - 컴파일 타임 : 작성된 코드를 컴파일 과정을 통해 실행 가능한 프로그램으로 편집하는 과정
      - 런타임 : 컴파일 과정을 마친 프로그램을 동작 시키는 과정
    • 런타임 상수는 메서드 내에서 선언할 수 없다.(컴파일은 가능)
    • 컴파일 타임 상수는 내장된숫자형, enum, 문자열, null 만 가능
  3. [Item3] Cast 보다는 is, as가 좋다.
    • 안정적인 코드를 작성하려는 경우 is로 형변환 유무를 확인후 형변환을 수행
    • as와 Cast의 가장 큰 차이점은 "사용자 정의형 변환을 어떻게 다루는가" 이다.
    • as 연산자는 임의의 객체를 원하는 타입으로 형변환 할때 지정한 타입이거나 지정한타입을 상속한 타입이어야 한다.  외외의 경우는 모두 null을 반환 (사용자 정의 형변환 X)
    • Cast는 사용자 정의 형변환이 개입될 수 있다.
      • Ex) int x = (int)string Num;
  4. [Item4] String.Format()을 보간 문자열로 대체하라
    • 보간문자열의 장점
      • 코드 가독성 대폭 향상
      • 정적 타입 검사를 수행하기 때문에 실수를 미연에 방지
      • 문자열을 생성하기 위한 표현식이 더 풍성하다.
      • Ex) string str = $"안녕하세요 {변수}";
        • @를 넣어 "? :" 사용 가능
        • ?? 식 사용가능
  5. [Item5] 문화권 별로 다른 문자열을 생성하려면 FormattableSetting을 사용하라.
    • 문자열 보간을 사용하여 문자열을 만들면 반환값이 문자열일 수 도, FormattableSetting을 상속한 타입일 수 도 있다.
    • Ex) FormattableString second = $"{DateTime.Now.Day}";

 

 

 

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

반응형