Sunmoon_BIT/C# 2010. 4. 1. 21:51

 

Effective C#

C#

언어요소

ITEM #1

데이터 멤버 대신에 항상 프로퍼티를 사용하라

ITEM #2

const보다는 readonly가 좋다

ITEM #3

cast보다는 is as가 좋다

ITEM #4

#if대신 Conditional Attribute를 사용하라

ITEM #5

항상 ToString()을 작성하라

ITEM #6

Value 타입과 Reference타입을 구분하라

ITEM #7

Immutable atomic value 타입이 더 좋다

ITEM #8

Value 타입을 사용할 때 0이라는 값이 의미를 가질 수 있도록 하라

ITEM #9

ReferenceEquals(),static Equals(),instance Equals(),operator ==의 상호 연관성을 이해하라

ITEM #10

GetHashCode()의 함성에 유의하라

ITEM #11

Foreach 루프가 더 좋다

닷넷

리소스

관리

ITEM #12

할당문보다는 변수 초기화를 사용하는 편이 더 좋다

ITEM #13

static클래스 멤버는 static생성자를 사용하여 초기화하라

ITEM #14

연쇄적인 생성자 호출을 이용하라

ITEM #15

자원해제를 위해서 using try/finally를 이용하라

ITEM #16

Garbage를 최소화하라

ITEM #17

Boxing unboxing을 최소화하라

ITEM #18

표준 dispose 패턴을 구현하라

C#

설계사항

구현

ITEM #19

상속보다는 interface를 정의하고 구현하는 것이 좋다

ITEM #20

Interface의 구현과 virtual 메서더의 overriding을 구분하라

ITEM #21

Delegate를 이용하여 콜백을 표현하라

ITEM #22

이벤트를 이용하여 외부로 노출할 인터페이스를 정의하라

ITEM #23

클래스 내부 객체에 대한 reference반환을 피하라

ITEM #24

명령적 프로그래밍보다 선언적 프로그래밍이 더 좋다

ITEM #25

serializable타입이 더 좋다

ITEM #26

IComparable IComparer를 이용하여 순차관계를 구현하라

ITEM #27

ICloneable의 구현을 피라하

ITEM #28

형변환 연산자의 구현을 피하라

ITEM #29

기반 클래스의 변경이 영향을 줄 경우에만 new 한정자를 사용하라

이진

컴포넌트

작성

ITEM #30

CLS를 준수하는 어셈블리가 더 좋다

ITEM #31

작고 단순한 메서드가 더 좋다

ITEM #32

작고 응집도가 높은 어셈블리가 더 좋다

ITEM #33

타입의 가시성을 제한하라

ITEM #34

API는 큰 단위로 작성하라

프레임

워크의

사용

ITEM #35

이벤트 핸들러보다 override를 사용하는 편이 낫다

ITEM #36

닷넷 런타임의 진단기능을 활용하라

ITEM #37

표준 환경설정 메커니즘을 이용하라

ITEM #38

데이터 바인딩을 사용하라

ITEM #39

닷넷의 유효성 검증 기능을 사용하라

ITEM #40

적절한 collection 개체를 이용하라

ITEM #41

새로운 구조체보다는 DataSet이 더 좋다

ITEM #42

Reflection을 단순화하기 위하여 attribute를 사용하라

ITEM #43

Reflection을 과도하게 사용하지 말라

ITEM #44

애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라

기타

ITEM #45

견고한 예외 보증 기법이 더 좋다

ITEM #46

Interop를 최소화하다

ITEM #47

안전한 코드가 더 좋다

ITEM #48

활용할 수 있는 다양한 툴과 리소스에 대해서 알아두라

ITEM #49

C# 2.0의 주요특징

ITEM #50

ECMA표준을 익혀라

 

자세한 내용을 책을 구매해서 보세요

Effective C# / 한빛미디어 / 빌 와그너 저, 김명신 역

'Sunmoon_BIT > C#' 카테고리의 다른 글

Visual Studio2008 유용한단축키  (0) 2010.04.03
Visual Studio 2008 자동 줄맞춤  (0) 2010.04.03
Sealed Class , Sealed Method  (0) 2010.03.29
Deligate [대리자]  (0) 2010.03.26
연산자 오버로딩  (0) 2010.03.26
: