More Effective C#

1.[More Effective C#] 1장 - Item 1: 접근 가능한 데이터 멤버 대신 속성을 사용하라

post-thumbnail

2.[More Effective C#] 1장 - Item 2: 변경 가능한 데이터에는 암묵적 속성을 사용하는 것이 낫다

post-thumbnail

3.[More Effective C#] 1장 - Item 3: 값 타입은 변경 불가능한 것이 낫다

post-thumbnail

4.[More Effective C#] 1장 - Item 4: 값 타입과 참조 타입을 구분하라

post-thumbnail

5.[More Effective C#] 1장 - Item 5: 값 타입에서는 0이 유효한 상태가 되도록 설계하라

post-thumbnail

6.[More Effective C#] 1장 - Item 6: 속성을 데이터처럼 동작하게 만들라

post-thumbnail

7.[More Effective C#] 1장 - Item 7: 튜플을 사용해서 타입의 사용 범위를 제한하라

post-thumbnail

8.[More Effective C#] 1장 - Item 8: 익명 타입은 함수를 벗어나지 않게 사용하라

post-thumbnail

9.[More Effective C#] 1장 - Item 9: 다양한 동일성 개념들 사이의 상관관계를 이해하라

post-thumbnail

10.[More Effective C#] 1장 - Item 10: GetHashCode()의 위험성을 이해하라

post-thumbnail

11.[More Effective C#] 2장 - Item 11: API에는 변환 연산자를 작성하지 말라

post-thumbnail

12.[More Effective C#] 2장 - Item 12: 선택적 매개변수를 사용하여 메서드 오버로드를 최소화하라

post-thumbnail

13.[More Effective C#] 2장 - Item 13: 타입의 가시성을 제한하라

post-thumbnail

14.[More Effective C#] 2장 - Item 14: 상속보다는 인터페이스를 정의하고 구현하는 것이 낫다

post-thumbnail

15.[More Effective C#] 2장 - Item 15: 인터페이스 메서드와 가상 메서드 차이를 이해하라

post-thumbnail

16.[More Effective C#] 2장 - Item 16: 상태 전달을 위한 이벤트 패턴을 구현하라

post-thumbnail

17.[More Effective C#] 2장 - Item 17: 내부 객체를 참조로 반환해서는 안 된다

post-thumbnail

18.[More Effective C#] 2장 - Item 18: 이벤트 핸들러보다는 오버라이딩을 사용하라

post-thumbnail

19.[More Effective C#] 2장 - Item 19: 베이스 클래스에 정의된 메서드를 오버로드해서는 안 된다

post-thumbnail

20.[More Effective C#] 2장 - Item 20: 이벤트가 런타임 시 객체 간의 결합도를 증가시킨다는 것을 이해하라

post-thumbnail

21.[More Effective C#] 2장 - Item 21: 이벤트는 가상으로 선언하지 말라

post-thumbnail

22.[More Effective C#] 2장 - Item 22: 명확하고 간결하며 완결된 메서드 그룹을 생성하라

post-thumbnail

23.[More Effective C#] 2장 - Item 23: 생성자, 변경자, 이벤트 핸들러를 위해 partial 클래스와 메서드를 제공하라

post-thumbnail

24.[More Effective C#] 2장 - Item 24: 설계 선택지를 제한하는 IClonable은 사용을 피하라

post-thumbnail

25.[More Effective C#] 2장 - Item 25: 배열 매개변수에는 params 배열만 사용해야 한다

post-thumbnail

26.[More Effective C#] 2장 - Item 26: 지역 함수를 사용해서 반복자와 비동기 메서드의 오류를 즉시 보고하라

post-thumbnail

27.[More Effective C#] 3장 - Item 27: 비동기 작업에는 비동기 메서드를 사용하라

post-thumbnail

28.[More Effective C#] 3장 - Item 28: async void 메서드는 절대 작성하지 말라

post-thumbnail

29.[More Effective C#] 3장 - Item 29: 동기, 비동기 메서드를 함께 사용해서는 안된다

post-thumbnail

30.[More Effective C#] 3장 - Item 30: 비동기 메서드를 사용해서 스레드 생성과 콘텍스트 전환을 피하라

post-thumbnail

31.[More Effective C#] 3장 - Item 32: 비동기 작업은 태스크 객체를 사용해 구성하라

post-thumbnail

32.[More Effective C#] 3장 - Item 33: 태스크 취소 프로토콜 구현을 고려하라

post-thumbnail

33.[More Effective C#] 3장 - Item 34: 비동기 메서드의 반환값을 캐시하는 경우 ValueTask<T>를 사용하라

post-thumbnail

34.[More Effective C#] 4장 - Item 35: PLINQ가 병렬 알고리즘을 구현하는 방법을 이해하라

post-thumbnail

35.[More Effective C#] 4장 - Item 36: 예외를 염두에 두고 병렬 알고리즘을 만들라

post-thumbnail

36.[More Effective C#] 4장 - Item 37: 스레드를 생성하지 말고 스레드 풀을 사용하라

post-thumbnail

37.[More Effective C#] 4장 - Item 38: 스레드 간 커뮤니케이션에는 BackgroundWorker를 사용하라

post-thumbnail

38.[More Effective C#] 4장 - Item 39: XAML 환경에서 스레드 간 호출을 이해하라

post-thumbnail

39.[More Effective C#] 4장 - Item 40: 동기화에는 lock()을 최우선으로 사용하라

post-thumbnail

40.[More Effective C#] 4장 - Item 41: 락은 가능한 한 좁은 범위에 적용하라

post-thumbnail

41.[More Effective C#] 4장 - Item 42: 잠긴 영역에서는 외부 코드 호출을 삼가라

post-thumbnail

42.[More Effective C#] 5장 - Item 43: 동적 타이핑의 장단점을 이해하라

post-thumbnail

43.[More Effective C#] 5장 - Item 44: 제네릭 타입 매개변수의 런타임 타입을 활용하려면 동적 타이핑을 사용하라

post-thumbnail

44.[More Effective C#] 5장 - Item 45: 데이터 주도 동적 타입에는 DynamicObject나 IDynamicMetaObjectProvider를 사용하라

post-thumbnail

45.[More Effective C#] 5장 - Item 46: 표현식 API의 사용법을 익혀두라

post-thumbnail

46.[More Effective C#] 5장 - Item 47: Public API에서는 동적 객체 사용을 최소화하라

post-thumbnail