목차
소개의 글 = 19
책 소개 = 21
시작하기 전에 = 23
용어 대역표 = 26
Chapter 1 객체 지향의 기초 = 27
객체란 무엇인가? = 27
상속 = 27
포함 = 29
다형성과 가상 함수 = 29
캡슐화와 가시성 = 31
Chapter 2 .Net 런타임 환경 = 33
실행 환경(Execution Environment) = 34
보다 단순한 프로그래밍 모델 = 34
보안과 안전 = 35
강력한 유틸리티 지원 = 36
배치, 패키징 그리고 지원 = 36
메타데이터(Metadata) = 37
어셈블리(Assembly) = 38
언어 혼용(Language Interop) = 38
어트리뷰트(Attribute) = 39
Chapter 3 C# 맛보기 = 41
Hello, Universe = 41
네임스페이스 및 용례 = 42
네임스페이스와 어셈블리 = 44
기본 데이터 타입 = 44
클래스, 구조체 그리고 인터페이스 = 46
구문 = 47
나열자(Enums) = 47
딜리게이트(Delegate)와 이벤트 = 48
프로퍼티와 인덱서 = 48
어트리뷰트(Attribute) = 49
Chapter 4 예외처리 = 51
리턴 코드의 문제는 무엇인가? = 51
Try 그리고 Catch = 52
예외 계층 = 53
호출자에게 예외 전달 = 56
Caller Beware = 56
Caller Confuse = 56
Caller Inform = 57
사용자 정의 예외 클래스 = 59
Finally = 61
효율성과 오버헤드 = 63
디자인 가이드라인 = 63
Chapter 5 클래스 101 = 65
간단한 클래스 = 65
멤버 함수 = 67
ref와 out 인자 = 69
오버로딩 = 72
Chapter 6 기본 클래스와 상속 = 75
Engineer 클래스 = 75
간단한 계승 = 76
엔지니어 배열 = 79
가상 함수 = 84
추상 클래스(Abstract Class) = 86
파생 방지 클래스(Sealed Class) = 91
Chapter 7 클래스 멤버 접근성 = 93
클래스 접근성 = 93
멤버에 internal 사용 = 94
internal protected = 95
클래스와 멤버 접근성의 상호작용 = 95
Chapter 8 클래스에 대한 다른 것들 = 97
중첩 클래스(Nested Class) = 97
다른 중첩 = 98
생성, 초기화, 소멸 = 99
생성자(Constructors) = 99
초기화(Initialization) = 101
소멸자(Destructors) = 102
오버로딩과 이름 숨기기 = 102
이름 숨기기(Name Hiding) = 103
정적 필드(Static Field) = 104
정적 멤버 함수(Static Member Function) = 105
정적 생성자(Static Constructor) = 106
상수(Constants) = 107
readonly 필드 = 108
private 생성자 = 112
길이가 변하는 인자 리스트 = 113
Chapter 9 구조체(값 타입) = 117
좌표 구조체 = 117
포장 작업(Boxing)과 포장 풀기(Unboxing) = 118
구조체와 생성자 = 120
디자인 가이드라인 = 120
Chapter 10 인터페이스 = 121
간단한 예제 = 121
인터페이스 작업 = 123
as 연산자 = 125
인터페이스와 상속 = 127
디자인 가이드라인 = 128
복수 구현(Multiple Implementation) = 129
명시적 인터페이스(Explicit Interface) 구현 = 131
구현 숨기기(Implementation Hiding) = 134
인터페이스에 기반한 인터페이스 = 136
Chapter 11 new와 override를 이용한 버전 관리 = 137
버전 관리 예제 = 137
Chapter 12 구문과 실행 흐름 = 141
선택 구문(Selection Statements) = 141
If = 141
Switch = 142
순환문(Iteration Statements) = 144
While = 144
Do = 145
For = 146
Foreach = 147
Jump 문 = 150
Break = 150
Continue = 150
Goto = 150
Return = 150
명백한 대입(Definite Assignment) = 150
명백한 대입과 배열 = 153
Chapter 13 지역 변수의 소코핑(Scoping) = 155
Chapter 14 연산자(Operators) = 157
연산자 우선순위 = 157
내장 연산자 = 158
사용자 정의 연산자 = 159
숫자 타입 상위변환(Numeric Promotion) = 159
산술 연산자 = 159
양수(Unary Plus, +) = 159
음수(Unary Minus, -) = 159
더하기(Addition, +) = 159
빼기(Subtraction, -) = 160
곱하기(Multiplication, *) = 160
나누기(Division, /) = 161
나머지(Remainder, %) = 161
쉬프트(Shift, << 그리고 >>) = 161
증가와 감소(Increment/Decrement, ++/--) = 161
관계(Relational) 연산자와 논리(Logical) 연산자 = 161
Logical Negation(!) = 162
관계 연산자 = 162
논리 연산자 = 162
조건 연산자(?:) = 163
대입(Assignment) 연산자 = 163
단순 형태의 대입 = 163
복합적인 대입 = 164
타입 연산자 = 164
typeof = 164
is = 165
as = 166
Chapter 15 변환(Conversions) = 167
숫자 타입 = 167
변환과 멤버 탐색 = 169
명시적 숫자 변환 = 171
검사된 변환 = 171
클래스로의 변환(참조자 타입) = 173
객체의 기본 클래스를 향하여 = 173
객체 구현의 인터페이스를 향하여 = 175
객체가 구현할 수 있는 인터페이스를 향하여 = 176
인터페이스 타입에서 다른 타입으로 = 178
구조체(값 타입)의 변환 = 178
Chapter 16 배열(Arrays) = 179
배열 초기화 = 179
다차원 배열과 불규칙 형태(Jagged)배열 = 180
다차원 배열 = 180
불규칙 형태 배열(Jagged Arrays) = 181
참조자 타입의 배열 = 182
배열 변환 = 183
System.Array 타입 = 184
Sorting과 Searching = 184
Reverse = 185
Chapter 17 스트링(Strings) = 187
연산 = 187
객체에서 스트링으로 변환 = 189
예제 = 189
StringBuilder = 190
정규 표현식(Regular Expression) = 191
보다 복잡한 파싱 = 193
Chapter 18 프로퍼티(Properties) = 197
접근자(Accessors) = 198
프로퍼티와 상속 = 199
프로퍼티 사용 = 199
값을 설정할 때의 부가적 효과(Side Effect) = 200
정적 프로퍼티(Static Properties) = 203
프로퍼티의 효율성 = 204
Chapter 19 인덱서(Indexers) = 207
정수 인덱스를 이용한 인덱싱 = 207
인덱서와 foreach = 212
디자인 가이드라인 = 217
Chapter 20 나열자(Enumerator) = 219
LineStyle Enumeration = 219
나열자의 기반 타입 = 220
초기화 = 221
비트 플래그 나열자(Bit Flag Enum) = 222
변환 = 223
Chapter 21 어트리뷰트(Attributes) = 225
어트리뷰트 사용 = 226
보다 세세한 사항들 = 229
독자적인 어트리뷰트 = 231
어트리뷰트 용법 = 232
어트리뷰트 인자 = 233
어트리뷰트 리플렉션 = 234
Chapter 22 딜리게이트(Delegates) = 237
딜리게이트 사용 = 237
정적 멤버로서의 딜리게이트 = 239
정적 프로퍼티로서의 딜리게이트 = 241
Chapter 23 이벤트(Event) = 245
New Mail 이벤트 = 245
이벤트 필드 = 248
멀티캐스트 이벤트 = 248
드물게 발생하는 이벤트 = 248
Chapter 24 사용자 정의 변환 = 253
단순한 예 = 253
이전 변환(pre-conversion)과 이후 변환(post-conversion) = 256
구조체간의 변환 = 257
클래스와 이전 변환 그리고 이후 변환 = 264
디자인 가이드라인 = 272
암묵적 변환이 안전한 변환 = 272
보다 복잡한 타입에서 변환 정의 = 272
계층 구조에서의 변환 = 272
필요할 때만 변환을 추가 = 273
다른 언어에서 동작하는 변환 = 273
어떻게 동작하는가? = 275
변환 탐색 = 275
Chapter 25 연산자 오버로딩 = 279
단항 연산자 = 279
이항 연산자 = 280
예제 = 280
제한 = 282
디자인 가이드라인 = 282
Chapter 26 다른 세부 사항들 = 285
Main 함수 = 285
Int 상태 리턴 = 285
명령어 라인 인자 = 286
여러 개의 Main = 286
전처리(Preprocessing) = 287
전처리 지시어 = 288
다른 전처리자 함수 = 290
어휘 세부 사항 = 291
식별자(identifier) = 291
리터럴(literal)292
주석 = 295
Chapter 27 .NET 프레임워크와 친숙해지기 = 297
모든 객체가 하는 일 = 297
ToString() = 297
Equals() = 299
해쉬와 GetHashCode() = 301
Chapter 28 System.Array와 콜렉션 클래스 = 305
정렬과 탐색 = 305
IComparable 구현 = 306
IComparer 사용 = 307
프로퍼티로서의 IComparer = 311
관계 연산자 오버라이딩 = 314
Hash의 고급 사용 = 317
ICloneable = 320
디자인 가이드라인 = 323
프레임워크 클래스에 의한 함수 및 인터페이스 = 323
Chapter 29 상호작용 = 325
COM 객체 이용 = 325
COM 객체에 의한 사용 = 325
고유한 DLL 함수 호출 = 326
Chapter 30 .NET 프레임워크 개괄 = 327
숫자 포맷 = 327
표준 포맷 스트링 = 327
커스텀 포맷 스트링 = 332
일자 및 시간 표현 = 338
커스텀 객체 포맷팅 = 340
존재하는 타입에 대한 새로운 포맷팅 = 341
숫자 파싱 = 343
C#에서 XML 사용 = 344
입출력 = 344
바이너리 입출력 = 345
텍스트 입출력 = 345
XML = 346
파일 읽고 쓰기 = 346
디렉토리 탐색 = 347
직렬화 = 349
스레딩 = 352
웹 페이지 읽기 = 355
Chapter 31 C#의 다른 이슈들 = 357
C# 스타일 = 357
명명 = 357
캡슐화 = 358
라이브러리 저자를 위한 가이드라인 = 358
CLS 호환 = 358
클래스 명명 = 359
안전하지 못한 코드(Unsafe code) = 360
구조체 레이아웃 = 364
XML 문서 = 365
컴파일러 지원 태그 = 366
XML 문서 태그 = 370
.NET 런타임의 메모리 관리 = 370
메모리 할당 = 371
Mark and Compact = 371
C#의 세대별 가비지 콜렉션(Generational Garbage Collection) = 372
종료처리 = 374
가비지 콜렉션 동작 제어 = 375
깊은 리플렉션 = 375
어셈블리의 모든 타입 나열 = 376
멤버 발견 = 377
함수 호출하기 = 380
최적화 = 384
Chapter 32 방어적(Defensive) 프로그래밍 = 385
조건부 메소드 = 385
Debug와 Trace 클래스 = 386
Assert = 387
Debug와 Trace 출력 = 388
Debug와 Trace 제어를 위한 스위치 사용 = 390
BooleanSwitch = 390
TraceSwitch = 392
사용자 정의 스위치 = 394
Chapter 33 명령 라인 = 399
단순한 용법 = 399
응답 파일 = 399
명령 라인 옵션 = 400
Chapter 34 C#과 다른 언어 비교 = 403
C#과 C/C++의 차이 = 403
관리 환경 = 403
.NET 객체 = 404
C# 구문 = 405
어트리뷰트 = 405
버전 처리 = 406
코드 조직 = 406
사라진 기능 = 406
C#과 자바의 차이 = 407
데이터 타입 = 407
타입 시스템 확장 = 409
클래스 = 409
인터페이스 = 413
프로퍼티와 인덱서 = 413
딜리게이트와 이벤트 = 413
어트리뷰트 = 414
구문 = 414
C#과 Visual Basic 6의 차이 = 416
코드 모습 = 416
데이터 타입과 변수 = 417
연산자와 표현 = 419
클래스, 타입, 함수 그리고 인터페이스 = 420
제어와 프로그램 흐름 = 420
Select Case = 423
On Error = 423
없어진 구문들 = 424
다른 .NET 언어 = 424
Chapter 35 C#의 미래 = 425
찾아보기 = 427