목차
용어 대역표 = 17
1. .NET의 철학
들어가기 = 26
.NET 플랫폼의 개요 = 26
.NET 프레임워크의 다양한 특징들 = 28
여러 언어를 사용한 개발 = 29
플랫폼과 프로세서 독립성 = 30
자동 메모리 관리 기능(automatic memory management) = 31
버전 관리 기능(versioning support) = 32
공개 표준안의 제공 = 33
간편한 프로그램의 배포 = 34
비관리모드 코드(unmanaged code)의 사용 = 35
높은 보안 기능의 제공 = 36
.NET 구조 이해하기 = 38
CLR(Common Language Runtime) = 39
.NET FCL(Framework Class Library) = 40
Microsoft 중간 언어(Microsoft Intermediate Language : MSIL) = 42
JIT(Just-In-Time) 컴파일러 = 43
.NET 프로그램이 만들어지는 과정 살펴보기 = 43
요약 = 46
이 장의 핵심 포인트 = 47
FAQ = 49
2. C# 시작하기
들어가기 = 52
C#이라는 언어 = 52
Java 언어와의 유사점 = 53
Java 언어와의 차이점 = 55
프로그래밍 시작하기 = 57
.NET 프레임워크 SDK 설치하기 = 57
첫 번째 C# 프로그램 만들기 = 59
컴파일과 실행 = 60
디버깅 도구 사용하기 = 62
IDE 사용하기 = 66
Visual Studio .NET = 67
그 외 IDE = 70
C# 맛보기 = 71
미디어 플레이어 만들기 = 71
Visual Studio .NET의 RAD 기능 사용하기 = 81
요약 = 86
이 장의 핵심 포인트 = 87
FAQ = 88
3. 기본 문법
들어가기 = 92
Main() 메소드 = 92
커맨드-라인 인자 = 95
반환값 = 97
한 줄 주석과 여러 줄 주석 = 100
XML 문서화 주석 = 102
자료형과 일반 자료형 시스템(Common Type System) = 110
변수(Variables) = 112
상수(Constant) = 114
대입 명령문 = 115
자료형간의 형 변환 = 117
연산자(Operator) = 119
수학 연산자(mathematical operator) = 120
대입 연산자(assignment operator) = 121
증가 및 감소 연산자 = 123
관계 연산자(relational operator) = 124
논리 연산자 = 124
비트와이즈(bitwise) 연산자 = 126
삼항 연산자(ternary operator) = 127
연산자 우선 순위(Operator Precedence) = 128
전처리 지시자(Preprocessor Directive) = 128
#define과 #undef = 129
#if, #elif, #else, #endif = 130
#error와 #warning = 134
#region과 #endregion = 136
#line = 137
네임스페이스 = 138
요약 = 140
이 장의 핵심 포인트 = 141
FAQ = 143
4. 프로그래밍 구조
들어가기 = 148
문자열(String) = 148
WriteLine 메소드 = 148
문자열 만들기 = 148
축어적 문자열 상수(verbatim String literal) = 153
StringBuilder 클래스 = 154
레귤러 익스프레션(Regural Expression) 사용하기 = 156
흐름 제어 = 158
조건 명령문(conditional statement) = 159
순차 명령문(iteration statement) = 162
분기 명령문(jump statement) = 164
배열 = 167
배열 선언하고 생성하기 = 168
params 키워드 사용하기 = 170
다차원 배열 = 171
foreach 명령문 = 178
인덱서(Indexer) = 181
인덱서 구현하기 = 181
다중 인덱서 = 185
다중 매개변수 인덱서(multiparameter indexer) = 187
컬렉션(Collection) = 189
컬렉션 인터페이스(collection interface) = 193
예외(Exceptions) = 194
예외 잡아내기 = 195
예외 발생시키기 = 197
요약 = 205
이 장의 핵심 포인트 = 205
FAQ = 208
5. 객체와 클래스
들어가기 = 210
클래스(class) 사용하기 = 210
접근 권한 제어(access control) = 211
클래스 지시자(class modifier) = 212
추상 클래스(Abstract Classes) = 217
sealed 클래스 = 217
인스턴스 변수(intance variable) = 218
정적 변수(static variable) = 219
메소드 사용하기 = 222
접근 권한 지시자 = 225
메소드의 매개변수 = 227
메소드 오버로딩(method overloading) = 231
객체 생성하기 = 234
생성자(constructor) = 234
객체 소멸시키기 = 240
메모리 관리와 가비지 컬렉션(garbage collection) = 240
C#의 소멸자 = 241
요약 = 246
이 장의 핵심 포인트 = 246
FAQ = 247
6. 객체지향 프로그래밍
들어가기 = 250
상속 = 250
바탕 클래스 정의하기 = 254
바탕 클래스의 생성자 호출하기 = 255
다형성 = 258
추상 클래스(Abstract Class) = 260
abstract 지시자 = 265
virtual 지시자 = 267
override 지시자 = 270
new 지시자 = 274
내부 클래스(Inner Class) = 278
인터페이스(interface)의 사용 = 280
인터페이스 만들기 = 281
인터페이스 선언하기 = 282
인터페이스 구현하기 = 283
인터페이스의 명시적인 구현 = 292
요약 = 296
이 장의 핵심 포인트 = 297
FAQ = 298
7. C#의 다른 특징
들어가기 = 302
속성(Property) = 302
읽기전용(read-only) 멤버 필드 = 305
열거형(Enumeration) = 307
박싱(Boxing)과 언박싱(Unboxing) = 311
박싱(Boxing) = 311
언박싱(Unboxing) = 312
연산자 오버로딩(Operator Overloading) = 313
단항 연산자 오버로딩 = 317
이항 연산자 오버로딩 = 321
Equals() 메소드 = 322
사용자 정의 형 변환 = 322
암묵적인 형 변환 연산자 오버로딩 메소드 = 324
명시적인 형 변환 연산자 오버로딩 메소드 = 325
구조체(Struct) = 328
구조체 정의하기 = 329
구조체 사용하기 = 333
요약 = 336
이 장의 핵심 포인트 = 336
FAQ = 338
8. 델리게이트(Delegate)와 이벤트(Event)
들어가기 = 342
델리게이트(Delegate) = 342
콜백 함수 만들기 = 343
델리게이트 선언하기 = 344
델리게이트 변수 만들기 = 346
델리게이트 호출(invocation) = 348
콜백 메소드 구현하기 = 349
델리게이트를 사용한 이벤트 처리 = 353
Java에서 이벤트 핸들링 = 354
C#에서 이벤트 핸들링 = 357
멀티캐스팅(Multicasting) = 365
멀티캐스팅의 순서 = 369
델리케이트의 고급 사용법 = 369
델리게이트를 정적 멤버로 선언하기 = 369
델리게이트와 스레드 생성 = 371
요약 = 372
이 장의 핵심 포인트 = 373
FAQ = 374
9. 어트리뷰트와 어셈블리
들어가기 = 378
어트리뷰트를 사용한 작업 = 378
어트리뷰트 사용하기 = 379
사용자 정의 어트리뷰트 만들기 = 384
리플렉션(Reflection) 사용하기 = 390
어셈블리 만들기 = 398
목록(manifest) 정보 = 399
어셈블리 만들기 = 399
버전 관리 = 403
버전 정보가 담긴 어셈블리 만들기 = 404
요약 = 408
이 장의 핵심 포인트 = 409
FAQ = 410
10. 멀티스레드(Multithread)
들어가기 = 414
스레드(Thread) = 414
스레드 생성하기 = 415
스레드 관리하기 = 420
Suspend()/Resume()/Abort() 사용하기 = 422
스레드 스케줄링 = 424
스레드 동기화 = 429
lock 명령문 사용하기 = 430
Monitor 클래스 사용하기 = 432
데드락(Deadlock)과 기아상태(Starvation) 피하기 = 436
요약 = 441
이 장의 핵심 포인트 = 443
FAQ = 444
11. I/O 스트림 사용하기
들어가기 = 448
파일 시스템 = 448
디렉토리 = 448
파일 = 452
스트림 = 456
Stream 클래스 = 457
파일 스트림 - FileStream 클래스 = 459
메모리 스트림 - MemoryStream 클래스 = 460
버퍼 스트림 - BufferStream 클래스 = 464
데이터 엔코딩(encoding)하기 = 464
텍스트(Text) = 468
StreamReader와 StreamWriter = 469
StringReader와 StringWriter = 470
네트워크 입출력 = 472
서버측 = 472
클라이언트측 = 475
동기화 방식과 비동기 방식 = 478
웹 스트림(Web Stream) = 481
직렬화(Serialization) = 483
직렬화가 가능한 객체 만들기 = 484
객체 직렬화하기 = 485
객체를 역직렬화하기 = 486
트랜전트 데이터(Transient data) = 487
역직렬화 연산(deserialization operation) = 487
요약 = 490
이 장의 핵심 포인트 = 491
FAQ = 493
12. 윈도우즈 폼을 이용한 사용자 인터페이스 만들기
들어가기 = 496
윈도우즈 폼 클래스(Windows Form Calss) = 496
윈도우즈 폼 클래스 계층(calss hierarchy) = 497
윈도우즈 폼 응용 프로그램 만들기 = 498
컨트롤 사용하기 = 500
컨트롤 추가하기 = 501
기본 컨트롤 = 502
이벤트 처리하기 = 506
문서 편집기 사용하기 = 509
Visual Studio .NET 사용하기 = 512
파일 탐색기 프로그램 만들기 = 514
요약 = 517
이 장의 핵심 포인트 = 517
FAQ = 519
13. C#과 웹 개발
들어가기 = 522
웹 서비스(Web Service) = 522
SOAP 사용하기 = 523
웹 서비스 만들기 = 524
데이터베이스에 연결하기 = 525
웹 서비스 만들기 = 529
웹 서비스 시작하고 사용하기 = 532
Visual Studio .NET을 사용해 웹 서비스 만들기 = 534
웹 서비스 사용하기 = 539
WSDL(Web Service Description Language) = 539
프록시 객체 만들기 = 542
웹 폼 = 547
HTML 컨트롤과 웹 컨트롤의 차이 = 548
웹 폼 컨트롤 사용하기 = 551
HTML 페이지 접근용(HTML page access) 웹 컨트롤 = 553
데이터 표현을 위한 웹 컨트롤 = 553
인증용 웹 컨트롤(validations web control) = 555
복합 웹 컨트롤(Complex Web Control) = 557
웹 폼 응용 프로그램 만들기 = 560
요약 = 566
이 장의 핵심 포인트 = 567
FAQ = 569
14. ActiveX, COM, 비관리모드 코드 사용하기
들어가기 = 572
비관리모드 코드를 사용한 작업 = 573
비관리모드 코드와 연동하기 = 574
플랫폼 호출 유틸리티 사용하기 = 576
COM 컴포넌트 사용하기 = 580
간단한 COM 컴포넌트 만들기 = 581
RCW(Runtime Callable Wrapper, 런타임 시 호출 가능한 랩퍼) = 583
ActiveX 컨트롤 사용하기 = 597
ActiveX 컨트롤과 윈도우즈 폼 컨트롤의 차이 = 598
AxImp.exe(ActiveX Control Importer) 유틸리티 사용하기 = 599
Visual Studio .NET을 사용해 ActiveX 컨트롤 사용하기 = 601
포인터 사용하기 = 605
불안정 코드(unsafe code) = 606
unsafe 키워드 = 607
fixed 키워드 = 608
요약 = 611
이 장의 핵심 포인트 = 612
FAQ = 614
15. J# 맛보기(JUMP)
들어가기 = 616
J#이란? = 617
Visual J#의 특징들 = 618
Visual J# 사용하기 = 619
간단한 J# 응용 프로그램 만들기 = 623
요약 = 637
이 장의 핵심 포인트 = 638
FAQ = 638
찾아보기 = 647