목차
1부 C 언어
1장 C, C++ 그리고 C ... 14
C 언어의 탄생 ... 14
C++ 언어의 탄생 ... 15
C, 탄생하다 ... 17
C과 CLR ... 18
2장 Hello, C! ... 20
Hello, C ... 20
[따라하기] Hello, C 출력 프로그램 ... 21
이 책을 공부하는 방법 ... 24
3장 변수와 자료형 ... 27
변수의 선언과 사용 ... 27
[예제] UseVar : 3장\src\UseVar.cs ... 27
자료형 ... 28
값형 ... 30
단순 자료형 ... 30
[예제] IntegralTest : 03장\src\IntegralTest.cs ... 32
[예제] CharTest : 03장\src\CharTest.cs ... 33
[예제] FloatTest : 03장\src\FloatTest.cs ... 35
[예제] BoolTest : 03장\src\BoolTest.cs ... 35
[예제] DecimalTest : 03장\src\DecimalTest.cs ... 37
나열형 ... 38
[예제] EnumTest : 03장\src\EnumTest.cs ... 40
참조형 ... 41
object형 ... 41
[예제] ObjectTest : 03장\src\ObjectTest.cs ... 42
[예제] StringTest : 03장\src\StringTest.cs ... 44
박싱과 언박싱 ... 45
[예제] BoxingTest : 03장\src\BoxingTest.cs ... 45
형 변환 ... 46
[예제] ConversionTest : 03장\src\ConversionTest.cs ... 47
널 타입 ... 48
[예제] NullableType : 03장\src\NullableType.cs ... 49
4장 연산자 ... 52
수치 연산자 ... 52
[예제] AropTest : 04장\src\AropTest.cs ... 53
증감 연산자 ... 53
[예제] IncDecTest : 04장\src\IncDecTest.cs ... 54
관계 연산자 ... 55
[예제] RelTest : 04장\src\RelTest.cs ... 56
논리 연산자 ... 56
[예제] LogicTest : 04장\src\LogicTest.cs ... 58
[예제] ConditionalTest : 04장\src\ConditionalTest.cs ... 60
[예제] BitTest : 04장\src\BitTest.cs ... 61
Shift 연산자 ... 61
[예제] ShiftTest : 04장\src\ShiftTest.cs ... 62
대입 연산자 ... 63
[예제] AssignTest : 04장\src\AssignTest.cs ... 64
5장 흐름 제어 ... 66
선택문 ... 66
if문 ... 66
[예제] GenterTest : 05장\src\GenterTest.cs ... 67
[예제] IfTest : 05장\src\IfTest.cs ... 68
switch문 ... 69
[예제] Yumjang : 05장\src\Yumjang.cs ... 70
반복문 ... 72
while문 ... 72
[예제] WhileTest : 05장\src\WhileTest.cs ... 73
do문 ... 74
[예제] DoTest : 05장\src\DoTest.cs ... 74
for문 ... 75
[예제] ForTest : 05장\src\ForTest.cs ... 76
[예제] ForForTest : 05장\src\ForForTest.cs ... 76
foreach문 ... 77
[예제] ForEachTest : 05장\src\ForEachTest.cs ... 77
점프문 ... 78
break문과 continue문 ... 78
[예제] BreakTest : 05장\src\BreakTest.cs ... 78
[예제] ContinueTest : 05장\src\ContinueTest.cs ... 79
goto문 ... 80
[예제] GotoTest : 05장\src\GotoTest.cs ... 80
return문과 throw문 ... 81
6장 메쏘드 ... 83
메쏘드란 무엇인가? ... 83
메쏘드의 형식 ... 84
[예제] FuncPlus : 06장\src\FuncPlus.cs ... 86
변수의 범위(Scoping) ... 86
[예제] Scope : 06장\src\Scope.cs ... 87
매개변수 ... 88
값에 의한 매개변수 전달 ... 88
[예제] ValueParam : 06장\src\ValueParam.cs ... 89
[예제] ValueSwap : 06장\src\ValueSwap.cs ... 89
참조에 의한 매개변수 전달 ... 90
[예제] RefSwap : 06장\src\RefSwap.cs ... 91
return VSout ... 92
[예제] ReturnExc : 06장\src\ReturnExc.cs ... 92
[예제] OutExc : 06장\src\OutExc.cs ... 93
가변 길이 매개변수 ... 94
[예제] Average : 06장\src\Average.cs ... 94
오버로딩과 오버라이딩 ... 95
오버로딩 ... 96
[예제] Absolute : 06장\src\Absolute.cs ... 96
7장 클래스 ... 101
클래스가 뭐예요? ... 101
객체 지향 프로그래밍 ... 101
내가 만든 자료형(Data Type) ... 103
클래스와 객체 ... 103
클래스 정의하기 ... 104
객체 생성하기 ... 104
접근 제한자 ... 105
[예제] Access : 07장\src\Access.cs ... 106
[예제] GetSet : 07장\src\GetSet.cs ... 108
생성자 ... 109
[예제] Constructor : 07장\src\Constructor.cs ... 110
상속 ... 111
상속의 형식 ... 111
[예제] Inheritance : 07장\src\Inheritance.cs ... 112
메쏘드 오버라이딩 ... 113
new 제한자 : 감추고 싶은 과거 ... 114
[예제] Inheritance : 07장\src\NewBase.cs ... 115
override : 과거는 깨끗하게 잊어주세요 ... 116
[예제] Abstract : 07장\src\Abstract.cs ... l17
[예제] Virtual : 07장\src\Virtual.cs ... 119
정적(static) 멤버 ... 120
[예제] Display : 07장\src\Display.cs ... 120
상수와 읽기전용 필드 ... 121
[예제] Shirt : 07장\src\Shirt.cs ... 122
[예제] Shirt2 : 07장\src\Shirt2.cs ... 124
인터페이스 ... 125
[예제] RadioWalkman : 07장\src\RadioWalkman.cs ... 127
구조체 ... 128
[예제] Struct : 07장\src\Struct.cs ... 129
나는 누구인가? : 형정보 알아내기 ... 130
GetType() 메쏘드 ... 130
[예제] GetType : 07장\src\GetType.cs ... 130
내가..이냐? : is 연산자 ... 132
[예제] Is : 07장\src\Is.cs ... 132
as 연산자 ... 133
[예제] As : 07장\src\As.cs ... 134
분할 클래스 ... 135
[예제] PartialCalculator : 07장\src\PartialCalculator_1.cs ... 136
[예제] 07장\src\PartialCalculator_2.cs ... 136
[예제] 07장\src\PartialCalculator.cs ... 137
8장 배열과 컬렉션 ... 140
배열 ... 140
[예제] ArrayTest : 08장\src\ArrayTest.cs ... 142
System.Array ... 143
다차원 배열 ... 143
2차원 배열 ... 143
[예제] 2DArray : 08장\src\2DArray.cs ... 145
보다 높은 차원의 배열 ... 145
[예제] ArrClear : 08장\src\ArrClear.cs ... 146
가변 배열 ... 147
[예제] Jagged : 08장\src\Jagged.cs ... 148
컬렉션 ... 149
ArrayList ... 150
[예제] ArrayListTest : 08장\src\ArrayListTest.cs ... 150
HashTable ... 151
[예제] HashtableTest : 08장\src\HashtableTest.cs ... 152
반복자 ... 152
[예제] Iterator : 08장\src\Iterator.cs ... 153
9장 속성과 인덱서 ... 156
속성 ... 156
[예제] Property : 09장\src\Property.cs ... 158
[예제] IProperty : 09장\src\IProperty.cs ... 160
인덱서 ... 162
[예제] Indexer : 09장\src\Indexer.cs ... 163
10장 델리게이트와 이벤트 ... 166
델리게이트 ... 166
델리게이트의 선언과 사용 ... 166
[예제] Delegate : 10장\src\Delegate.cs ... 167
델리게이트의 합성 ... 168
[예제] Coffee : 10장\src\Coffee.cs ... 169
익명 메쏘드 ... 171
[예제] AnonymouseMethod : 10장\src\AnonymouseMethod.cs ... 172
이벤트 ... 173
이벤트 구성하기 ... 173
[예제] Event : 10장\src\Event.cs ... 175
11장 예외 처리 ... 179
예외? 예외 처리? ... 179
try문과 catch문 ... 179
[예제] TryCatch : 11장\src\TryCatch.cs ... 180
finally 문 ... 181
[예제] Finally : 11장\src\Finally.cs ... 182
System.Exception 클래스 ... 182
[예제] Exception : 11장\src\Exception.cs ... 183
[예제] MultiException : 11장\src\MultiException.cs ... 184
throw문 ... 185
[예제] Throw : 11장\src\Throw.cs ... 186
12장 특성 ... 189
특성의 소개 ... 189
[예제] ObsoluteTest : 12장\src\ObsoluteTest.cs ... 190
특성 작성하기 ... 191
특성의 선언 ... 191
AttributeUsage - 특성의 특성 ... 192
[예제] ModifyAttribute : l2장\src\ModifyAttribute.cs ... 194
13장 일반화 프로그래밍 ... 196
일반화 프로그래밍 개요 ... 196
[예제] ObjectArray : 13장\src\ObjectArray.cs ... 198
[예제] GenericArray : 13장\src\GenericArray.cs ... 200
형 매개 변수 ... 201
[예제] NVGenericArray : 13장\src\NVGenericArray.cs ... 203
일반화 메쏘드 ... 205
[예제] GenericMethod : 13장\src\GenericMethod.cs ... 205
일반화 컬렉션 ... 206
System.Collections.Generic.List ... 206
[예제] ListTest : 13장\src\ListTest.cs ... 207
System.Collections.Generic.Dictionary ... 208
[예제] DictionaryTest : 13장\src\DictionaryTest.cs ... 209
System.Collections.Generic.Queue ... 210
[예제] QueueTest : 13장\src\QueueTest.cs ... 211
System.Collections.Generic.Stack ... 212
[예제] StackTest : 13장\src\StackTest.cs ... 212
일반화 반복자 ... 213
[예제] GenericArray : 13장\src\GenericIterator.cs ... 213
2부 .NET 프레임워크 활용
14장 비주얼 C 익스프레스 시작하기 ... 218
비주얼 C 익스프레스의 구성 ... 218
메뉴와 툴바 ... 219
도구 상자 ... 220
솔루션 탐색기 ... 220
클래스 뷰 ... 221
속성 창 ... 221
폼 디자이너(Design Time Tamplate) ... 221
코드 편집기 ... 222
컨트롤의 사용 : 무조건 따라해보기 ... 223
새 프로젝트 만들기 ... 224
[따라하기] 프로젝트 새로 만들기 ... 224
컨트롤 배치하기 ... 225
[따라하기] 컨트롤 배치하기 ... 225
컨트롤 속성 변경하기 ... 226
[따라하기] 컨트롤 속성 변경하기 ... 226
컨트롤 이벤트 처리기 작성하기 ... 228
[따라하기] 컨트롤 이벤트 처리기 작성하기 ... 228
프로젝트 빌드 및 실행 ... 229
[따라하기] 프로젝트 빌드 및 실행 ... 229
15장 C 윈도우 프로그래밍의 기초 ... 230
도대체 무슨 일이 일어나고 있는 걸까? ... 230
윈도우는 어떻게 만들까? ... 230
[예제] BasicWindow : 15장\src\BasicWindow\BasicWindow.cs ... 231
Application 클래스 ... 232
[예제] AppTest : 15장\src\AppTest\AppTest.cs ... 233
[예제] MsgTest : 15장\src\MsgTest.cs ... 236
Form 클래스 ... 238
[예제] EventTest : 15장\src\EventTest.cs ... 240
[예제] SizeTest : 15장\src\SizeTest.cs ... 242
[예제] ColorTest : 15장\src\ColorTest.cs ... 245
[예제] MinMax : 15장\src\MinMax.cs ... 247
[예제] ButtonTest : 15장\src\ButtonTest.cs ... 250
16장 메모장 만들기 ... 252
메모장 제작에 앞서 해야 할 일들 ... 252
메모장 무작정 따라하기 ... 253
새 프로젝트 만들기 ... 253
[따라하기] 새 프로젝트 만들기 ... 253
메뉴 만들기 ... 254
[따라하기] 메뉴 만들기 ... 255
컨트롤 배치하기 ... 257
코드 추가하기 ... 261
UnicodeOption 속성 추가하기 ... 265
[따라하기] 새로 만들기 메뉴의 이벤트 처리기 ... 270
[따라하기] 열기 메뉴의 이벤트 처리기 ... 271
[따라하기] 저장 메뉴의 이벤트 처리기 ... 272
[따라하기] 끝내기 메뉴 이벤트 처리기 작성하기 ... 273
[따라하기] 유니코드 인코딩 메뉴 이벤트 처리기 ... 273
[따라하기] 새로 만들기 메뉴의 이벤트 처리기 ... 274
17장 파일 관리자 만들기 - Part 1 ... 276
시작하기 전에 ... 276
System.IO 네임 스페이스 ... 277
디렉토리와 파일 다루기 ... 278
[예제] DirectoryTest : 17장\src\DirectoryTest.cs ... 280
[예제] DirectoryInfoTest : 17장\src\DirectoryInfoTest.cs ... 281
[예제] FileTest : 17장\src\FileTest.cs ... 283
[예제] FileInfoTest : 17장\src\FileInfoTest.cs ... 284
컨트롤 사용법 ... 285
ToolStrip(툴바)컨트롤 & ImageList(이미지 리스트) 컨트롤 ... 286
[따라하기] ToolStrip 컨트롤과 ImageList 컨트롤 사용 ... 287
StatusStrip(상태바) 컨트롤 ... 290
[따라하기] 각 버튼의 툴팁과 시간을 표시하는 예제 ... 290
ImageList(이미지 리스트) 컨트롤 ... 293
[따라하기] ImageList 컨트롤 추가 ... 293
ListView(리스트 뷰) 컨트롤 ... 294
[따라하기] ListView 컨트롤 ... 294
TreeView(트리 뷰) 컨트롤 ... 298
[따라하기] TreeView ... 299
18장 파일 관리자 만들기 - Part 2 ... 301
파일 관리자 프로젝트 ... 301
프로젝트 새로 만들기 ... 301
[따라하기] 프로젝트 생성 ... 301
폼 추가하기 ... 302
[따라하기] 다이얼로그 컨트롤 ... 302
컨트롤 배치하기 ... 303
[따라하기] MainForm.cs의 컨트롤 배치 ... 303
[따라하기] FolderDlg.cs의 컨트롤 배치 ... 306
코드 추가하기 ... 307
[따라하기] MainForm 이벤트 처리 ... 315
[따라하기] DirTreeView_AfterExpand() 이벤트 처리기 ... 316
[따라하기] DirTreeView_AfterSelect() 이벤트 처리기 ... 317
[따라하기] FolderDlg_Load() 이벤트 처리기 ... 317
[따라하기] OKBtn_Click() 이벤트 처리기 ... 318
19장 MyCanvas - GDI+ ... 323
GDI+ ... 323
System.Drawing 네임 스페이스 ... 324
Graphics 클래스 ... 325
[따라하기] 프로젝트 새로 만들기 ... 327
2D벡터 그래픽 ... 327
[따라하기] GraphicsTest 프로젝트 ... 328
이미징 ... 332
[따라하기] Graphics 클래스와 Bitmap 클래스를 활용하는 예제 ... 333
문자 출력 ... 335
[따라하기] Font 클래스 ... 335
MyCanvas 프로젝트 ... 337
프로젝트 새로 만들기 ... 338
[따라하기] 프로젝트 생성 ... 338
폼 추가하기 ... 338
[따라하기] 폼 추가 ... 339
컨트롤 배치하기 ... 340
[따라하기] MainForm.cs ... 340
2D 그래픽 관련 코드 추가하기 ... 348
문자 출력 관련 코드 추가하기 ... 353
이미징 관련 코드 추가하기 ... 356
파일 관련 코드 추가하기 ... 360
UI 이벤트 처리기 추가하기 ... 362
20장 데이터베이스와 ADO.NET ... 374
데이터베이스에 대하여 ... 374
데이터베이스의 역사 ... 374
관계형 데이터베이스의 기본적인 구조 ... 376
SQL(Structured Query Language) ... 377
DBMS ... 382
ADO.NET에 대하여 ... 382
ADO.NET의 구성 ... 383
System.Data - ADO.NET을 그대 품 안에 ... 384
[따라하기] 프로젝트 새로 만들기(예제 파일 경로 : 20장\src\ADOTest\ADOTest.csproj) ... 385
[따라하기] ADOTest.mdb 데이터베이스 만들기 ... 385
Data Provider - DataAdapter, DataReader, Connection, Command ... 388
[따라하기] DataAdapter 예제 ... 389
[따라하기] Connection과 Command 예제 ... 392
[따라하기] DataReader 예제 ... 395
DataSet 클래스 - 데이터베이스의 자료 처리하기 ... 398
[따라하기] 프로젝트 생성 ... 400
[따라하기] 기존 레코드 수정하기 ... 404
[따라하기] 레코드 삭제하기 ... 407
21장 ADO.NET과 함께 하는 MyFriends 프로젝트 ... 410
프로그램 소개 ... 410
데이터베이스 구축하기 ... 411
[따라하기] MyFriends.mdb 데이터베이스 새로 만들기 ... 411
MyFriends UI 꾸미기 ... 413
[따라하기] 프로젝트 생성 ... 413
MyFriends 코드 추가하기 ... 416
레코드 추가 기능 ... 416
[따라하기] 레코드 추가 기능 구현하기 ... 419
레코드 검색 ... 416
[따라하기] 레코드 검색 기능 구현하기 ... 419
레코드 수정 ... 420
[따라하기] 레코드 수정 기능 구현하기 ... 420
레코드의 삭제 ... 423
[따라하기] 레코드 삭제 기능 구현하기 ... 423
레코드 이동 ... 424
[따라하기] 레코드 이동 기능 구현하기 ... 424
22장 쓰레드(Thread) ... 426
프로세스 그리고 쓰레드 ... 426
쓰레드의 기본 제어 ... 427
쓰레드 시동하기 ... 428
[예제] HelloThread :22장\src\HelloThread.cs ... 428
쓰레드 잠재우기 ... 429
[예제] HelloThread_2 : 22장\src\HelloThread_2.cs ... 430
쓰레드 종료하기 ... 432
[예제] HelloThread_3 : 22장\src\HelloThread_3.cs ... 432
쓰레드의 동기화 ... 433
[예제] SyncTest : 22장\src\SyncTest.cs ... 433
Interlocked 클래스 ... 435
[예제] Interloked_1 : 22장\src\Interloked_1.cs ... 436
[예제] Interloked_2 : 22장\src\Interloked_2.cs ... 438
lock 구문 ... 439
[예제] lock : 22장\src\lock.cs ... 440
Monitor 클래스 ... 441
[예제] Monitor : 22장\src\Monitor.cs ... 442
23장 네트워크 프로그래밍 ... 445
TCP/IP ... 445
TCP/IP의 계층 모델 ... 445
IP 주소와 포트(Port) ... 446
TCP/IP의 동작 ... 447
System.Net.Sockets ... 447
TcpListener와 TcpClient 클래스 ... 448
[따라하기] 서버 구현하기(예제 경로 : 23장\src\ListenerTest\ListenerTest.sln) ... 449
[따라하기] 클라이언트 구현하기(예제 경로:23장\src\ClientTest\ClientTest.sln) ... 451
SimpleChat 프로젝트 ... 454
[따라하기] SimpleChat Server 만들기(예제 경로:23장\23장 소스\SimpleChatSever\SimpleChatServer.sln) ... 454
[따라하기] SimpleChatClient 만들기(예제 경로:23장\23장 소스\SimpleChatClient\SimpleChatClient.Sln) ... 459
24장 컴포넌트 프로그래밍 ... 466
컴포넌트의 개요 ... 466
계산기 프로그램 ... 467
[따라하기] 계산기 프로그램 만들기(예제 경로:24장\src\Calculator\Calculator.csproj) ... 467
클래스를 이용한 계산기 ... 471
[따라하기] 클래스를 이용한 계산기 만들기(예제 경로:24장\src\Calculator_Class\Calculator_Class.csproj) ... 471
계산기 컴포넌트 만들기 ... 476
[따라하기] 계산기 컴포넌트 만들기(예제 경로:24장\src\BasicOperation\BasicOperation.csproj) ... 476
계산기 컴포넌트를 이용한 계산기 ... 477
[따라하기] 계산기 컴포넌트를 이용한 계산기 만들기(예제 경로:24장\src\Calculator_Component\Calculator_Component.csproj) ... 478
25장 .NET 리모팅 ... 483
.NET 리모팅 개요 ... 483
원격 객체 작성하기 ... 484
원격 객체를 띄우는 서버 ... 486
리모팅 채널 객체 생성 ... 486
채널 서비스에 채널 등록 ... 487
원격 클래스 등록 ... 487
원격 객체를 사용하는 클라이언트 ... 488
원격 계산기 ... 488
CalculatorAssembly ... 489
[따라하기] Calculator 어셈블리 만들기 ... 489
계산기 리모팅 서버 ... 490
[따라하기] 계산기 리모팅 서버 만들기 ... 490
계산기 리모팅 클라이언트 ... 493
[따라하기] 계산기 리모팅 클라이언트 만들기 ... 494
원격 계산기 예제 실행하기 ... 497
26장 이 책에서 다루지 못한 것들… ... 500
앞으로 해야 할 공부들 ... 500
C 참고 사이트 ... 501
MONO - C과 UNIX와의 만남 ... 503
저자의 연락처 ... 504
닫기