반응형
- [Item1] 지역변수를 선언할 때는 var를 사용하는 것이 낫다.
- C# 언어가 익명 타입을 지원한다.
- 개발자가 코드를 읽을때 쉽게 짐작할 수 없다면 명시적 타입을 기술하는것이 낫다.
- [Item2] Const 보다는 readonly가 좋다.
- 컴파일 타임 상수(Const)보다는 런타임 상수(readonly)를 사용하라
- 컴파일 타임 상수는 성능이 매우 중요하고 상수의 값이 절대 바뀌지 않을때만 사용
-
더보기컴파일타임과 런타임
- 컴파일 타임 : 작성된 코드를 컴파일 과정을 통해 실행 가능한 프로그램으로 편집하는 과정
- 런타임 : 컴파일 과정을 마친 프로그램을 동작 시키는 과정 - 런타임 상수는 메서드 내에서 선언할 수 없다.(컴파일은 가능)
- 컴파일 타임 상수는 내장된숫자형, enum, 문자열, null 만 가능
- [Item3] Cast 보다는 is, as가 좋다.
- 안정적인 코드를 작성하려는 경우 is로 형변환 유무를 확인후 형변환을 수행
- as와 Cast의 가장 큰 차이점은 "사용자 정의형 변환을 어떻게 다루는가" 이다.
- as 연산자는 임의의 객체를 원하는 타입으로 형변환 할때 지정한 타입이거나 지정한타입을 상속한 타입이어야 한다. 외외의 경우는 모두 null을 반환 (사용자 정의 형변환 X)
- Cast는 사용자 정의 형변환이 개입될 수 있다.
- Ex) int x = (int)string Num;
- [Item4] String.Format()을 보간 문자열로 대체하라
- 보간문자열의 장점
- 코드 가독성 대폭 향상
- 정적 타입 검사를 수행하기 때문에 실수를 미연에 방지
- 문자열을 생성하기 위한 표현식이 더 풍성하다.
- Ex) string str = $"안녕하세요 {변수}";
- @를 넣어 "? :" 사용 가능
- ?? 식 사용가능
- 보간문자열의 장점
- [Item5] 문화권 별로 다른 문자열을 생성하려면 FormattableSetting을 사용하라.
- 문자열 보간을 사용하여 문자열을 만들면 반환값이 문자열일 수 도, FormattableSetting을 상속한 타입일 수 도 있다.
- Ex) FormattableString second = $"{DateTime.Now.Day}";
참거 - Effective C# <강력한 C# 코드를 구현하는 50가지 전략과 기법, 이펙티브>, 빌 와그너, 김명신, 한빛미디어
반응형
'C# > Effective C#' 카테고리의 다른 글
[Effective C#] Item16 생성자 내에서는 절대로 가상함수를 호출하지 마라. (0) | 2022.08.30 |
---|---|
[Effective C#] Item15 불필요한 객체를 만들지 마라 (0) | 2022.07.13 |
[Effective C#] Item14 초기화 코드가 중복되는것을최소화 하라. (0) | 2022.07.08 |
[Effective c#] Item11 ~ Item13 (0) | 2022.07.08 |
[Effective C#] Item6 ~ Item 10 (0) | 2022.07.08 |