목차
1. 프로그래밍과 C# 소개 ... 2
   C#을 사용한 윈도우 응용 작성 ... 2
      윈도우 그래픽 사용자 <B><FONT color ... #0000
   프로그래밍 언어-절차적, 이벤트기반, 객체지향 ... 3
      객체 모델(The Object Model) ... 4
      마이크로소프트 비주얼 스튜디오 닷 넷 ... 5
   C# 프로그램 작성 ... 6
      3-단계 과정(The Three-Step Process) ... 6
      C# 응용 파일 ... 7
   비주얼 스튜디오 환경(The studio Environment) ... 7
      IDE 시작 페이지(The IDE Start Page) ... 8
      New Project 대화상자 ... 8
      IDE 주 창 ... 9
      툴바(The Toolbars) ... 9
      문서 창(The Document Window) ... 9
      폼 디자이너(The Form Designer) ... 10
      솔루션 탐색기 창(The Solution Explorer Window) ... 10
      속성 창(The Properties Window) ... 11
      도구상자(The Toolbox) ... 11
      도움말(Help) 특징 ... 11
      디자인 시점(Design Time), 실행 시점(Run Time), 중단 시점(Break Time) ... 12
   첫번째 C# 프로젝트 작성 ... 12
      워크스페이스 설정 ... 13
      프로젝트 설계하기 ... 16
      사용자 <B><FONT color ... #0000
      속성 설정 ... 21
      코드 작성 ... 25
      C# Code Statements ... 26
      Hello World를 위한 이벤트-핸들링 메소드 코드 ... 28
      프로젝트 수행(Run the Project) ... 31
      작업 저장 ... 32
      프로젝트 열기 ... 32
      프로젝트 수정 ... 33
      코드 인쇄하기 ... 38
   에러 찾기와 고치기(Finding and Fixing Errors) ... 39
      구문 에러 ... 39
      실행-시간 에러 ... 41
      로직 에러 ... 41
      프로젝트 디버깅 ... 41
      객체를 위한 명명 규칙과 관례 ... 42
   비주얼 스튜디오 도움말 ... 43
      MSDN의 설치와 실행 ... 43
      도움말 주제 보기 ... 43
      문맥-민감형(Context-Sensitive) 도움말 ... 45
      창 관리 ... 45
2. 컨트롤 ... 53
   컨트롤 ... 54
      텍스트 박스(Text Boxes) ... 55
      그룹 박스(Group Boxes) ... 55
      체크 박스(check Boxes) ... 55
      라디오 버튼(Radio Buttons) ... 56
      픽처 박스(Picture Boxes) ... 56
      Border과 Style 설정 ... 58
      선 그리기 (Drawing a Line) ... 58
   다중 컨트롤 다루기 ... 58
      여러 개의 컨트롤 선택 ... 59
      컨트롤 그룹의 선택 해제 ... 59
      여러 개의 컨트롤을 그룹처럼 이동 ... 60
      다중 컨트롤을 위한 속성 설정 ... 60
      컨트롤 정렬 ... 60
   사용자 편리를 위하여 응용프로그램 설계 ... 61
      사용자 <B><FONT color ... #0000
      키보드 제어키 정의 ... 62
      확인(Accept) 버튼과 취소(Cancel) 버튼 설정 ... 62
      컨트롤에 대한 탭 순서 설정 ... 63
      화면에서 폼의 위치 설정 ... 64
      툴팁 생성 ... 64
   컨트롤에 대한 코딩 ... 66
      텍스트 박스와 레이블 내용 지우기 ... 66
      포커스 재설정 ... 66
      라디오 버튼과 체크 박스의 Checked 속성 설정 ... 67
      실행 시점에 가시성 설정 ... 67
      텍스트 색 변경 ... 67
      텍스트 연결(concatenating) ... 68
      긴 프로그램 줄 연결하기 ... 68
      이벤트 핸들러 기록 ... 68
   프로그래밍 실습 예제 ... 69
   좋은 프로그램 습관 ... 74
3. 변수, 상수, 계산 ... 83
   데이터-변수(Variables)와 상수(Constants) ... 84
      데이터 형 ... 85
      명명, 규칙 ... 86
      명명 관례 ... 86
      상수-명명(Named)과 고유(Intricsic) ... 88
      변수 선언 ... 90
      변수의 범위와 유효기간 ... 91
   계산하기 ... 94
      문자열을 수치 데이터 형으로 변환하기 ... 94
      산술 연산 ... 95
      연산 순서 ... 95
      코드에서 계산 사용하기 ... 97
      수치 데이터 형 사이의 변환 ... 98
      서로 다른 데이터 형을 가지고 계산 수행하기 ... 99
      반올림 ... 99
   디스플레이를 위한 데이터 형식 지정 ... 101
   계산 프로그램 예 ... 104
      프로젝트 설계(Planning the Project) ... 104
      프로젝트 코딩 솔루션 ... 107
   예외 처리 ... 108
      try/catch 블록 ... 108
   메세지 박스에 메시지 디스플레이 ... 110
      TextMessage 문자열 ... 112
      타이틀 바 텍스트 ... 112
      MessageBox 버튼 ... 112
      MessageBox 아이콘 ... 112
      오버로드된 메소드 사용하기 ... 113
      여러 필드의 검사 ... 114
   카운팅과 합계 누적 ... 115
      합계 숫자 ... 116
      카운팅 ... 116
      평균 계산 ... 116
   프로그래밍 실습 예제 ... 116
4. 의사 결정과 조건 ... 131
   if 문 ... 132
      if의 순서도 ... 134
   조건(Conditions) ... 135
      숫자 변수와 상수 비교 ... 136
      문자 데이터 비교 ... 136
      문자열 비교 ... 138
      대문자와 소문자 비교 ... 138
      true 또는 false 검사 ... 139
      조건 조합 ... 139
      단축(Short-Circuit) 연산 ... 141
   중복 if 문 ... 142
      else if 문의 코딩 ... 144
   라디오 버튼과 체크박스를 포함하고 있는 if 문의 사용 ... 146
      간단한 예제 ... 147
      라디오 버튼 그룹의 상태 조사 ... 148
      체크 박스 그룹의 상태 조사 ... 148
   향상된 메시지 박스 ... 149
      메시지 문자열 표시 ... 149
      여러 개의 버튼 표시 ... 150
   입력 검증 ... 152
      값의 범위 검사 ... 153
      요청한 필드 검사 ... 153
      다중 검증 수행 ... 154
   Case 구조 ... 154
   이벤트 핸들러 공유 ... 157
   이벤트 핸들러 호출 ... 159
   프로그래밍 실습 예제 ... 160
   C# 프로젝트 디버깅 ... 168
      출력 창 작성 ... 169
      Break 버튼으로 실행 중단 ... 170
      강제로 중단하기 ... 170
      표현식의 현재 값 조사 ... 170
      단계별로 코드 추적 ... 171
      지역 창(Locals Window) ... 172
      Autos Window ... 172
      단계별 디버깅 튜토리얼 ... 173
5. 메뉴, 공통 대화상자, 메소드 ... 185
   메뉴(Menus) ... 186
      메뉴 정의 ... 186
      메뉴 생성 - 단계별 ... 189
      메뉴 항목을 위한 코딩 ... 190
      메뉴 항목의 수정 ... 191
      윈도우 메뉴의 표준 ... 192
   공통 대화상자 ... 192
      윈도우 공통 대화상자 디스플레이하기 ... 193
      대화상자에서 정보 사용하기 ... 194
      초기 값 설정 ... 195
   문맥 메뉴의 생성 ... 196
      문맥 메뉴 생성 - 단계별 ... 197
   일반적 메소드 작성 ... 199
      새로운 메소드 생성 ... 199
      메소드에 매개변수 전달 ... 200
      값을 반환하는 메소드 작성 ... 201
      여러 개의 매개변수를 가지는 메소드 ... 203
      계산을 작은 단위로 나누기 ... 204
   프로그래밍 실습 예제 ... 206
6. 객체지향 프로그램 생성하기 ... 223
   객체지향 프로그래밍 ... 224
      객체(Objects) ... 224
      객체지향 용어 ... 225
      재사용 가능한 클래스 ... 227
      다층(multitier) 응용 ... 227
   클래스 ... 228
      객체 인스턴스화 ... 228
      사용자 클래스 설계 ... 229
      사용자 클래스에서 속성 생성 ... 229
      클래스 메소드 ... 231
      생성자와 소멸자 ... 232
      새로운 클래스 생성 - 단계별 ... 233
   Class를 사용하여 새로운 객체를 생성 ... 237
      새로운 객체 정의와 사용 - 단계별 ... 238
      인스턴스 변수와 정적 변수 ... 240
      단계별 튜토리얼에 정적 속성을 추가 ... 242
      소멸자 ... 245
   상속성 ... 245
      속성과 메소드 상속 ... 245
      메소드 재정의 ... 246
      속성 액세스 ... 246
      BookSale을 기반으로 파생 클래스 생성 ... 247
      상속성 추가를 위한 단계별 튜토리얼 ... 248
      상속을 위한 순수 기반 클래스 생성 ... 251
      폼 클래스 상속 ... 251
   다중 클래스 프로젝드 관리 ... 254
      네임스페이스(Namespace) ... 254
      기존의 클래스 파일을 프로젝트에 추가 ... 255
      다른 폼에서 값 표시 ... 256
   객체 브라우저 사용 ... 256
      C# 클래스 검토 ... 257
      사용자 클래스 검토 ... 257
   프로그래밍 실습 예제 ... 259
7. 리스트, 루프, 인쇄 ... 277
   리스트 박스와 콤보 박스 ... 278
      항목 모음집 ... 279
      리스트 채우기 ... 279
      SelectedIndex 속성 ... 281
      Items.Count 속성 ... 282
      항목 모음집의 참조 ... 282
      리스트로부터 항목의 제거 ... 283
      리스트 지우기 ... 284
      리스트 박스와 콤보 박스 이벤트 ... 284
   While과 do/while 루프 ... 285
      논리 데이터 형 다시 보기 ... 287
      리스트 박스를 가지는 while 루프 ... 288
   for 루프 ... 289
      음의 증가 또는 역으로 카운팅 ... 290
      진입 전에 만족되는 조건 ... 291
      무한 루프 ... 291
      루프 종료하기 ... 291
   항목이 선택되어 보이도록 만들기 ... 292
      텍스트 박스에 있는 항목 선택하기 ... 292
      리스트 박스의 엔트리 선택하기 ... 292
   프린터에 정보 보내기 ... 293
      PrintDocument 컨트롤 ... 293
      리스트 박스의 내용 인쇄 ... 296
      완성된 PrintPage 메소드 ... 297
      리스트에서 선택된 항목을 인쇄 ... 298
      소수점 열 정렬 ... 298
      인쇄 미리보기 디스플레이 ... 298
      여러 페이지 인쇄 ... 300
   프로그래밍 실습 예제 ... 301
8. 배열(Arrays) ... 317
   일차원 배열 ... 318
      첨자(subscripts) ... 318
      타당한 첨자 ... 319
   Foreach 문 ... 320
   구조체(structures) ... 321
      구조체를 기반으로하는 배열 선언 ... 322
      구조체 변수에 있는 요소 액세스 ... 322
      구조체 내에 배열 포함 ... 323
   배열 요소를 누산기로 사용 ... 323
      정확하게 합계 더하기 ... 324
      배열 프로그램 디버깅 ... 325
   테이블 탐색(lookup) ... 326
   테이블 탐색 코딩 ... 328
   배열과 리스트 박스를 함께 사용 ... 329
   다차원 배열 ... 330
      2차원 배열 초기화 ... 332
      2차원 배열 출력 ... 332
      2차원 테이블 합계 ... 333
      2차원 테이블을 위한 탐색 동작 ... 334
   실습 프로그래밍 예제 ... 336
9. 웹 폼 프로그래밍 ... 351
   C#과 웹 프로그래밍 ... 352
      클라이언트/서버 웹 응용 ... 352
   웹 폼 생성 ... 353
      비주얼 스튜디오 IDE에서의 웹 폼 ... 354
      첫 번째 웹 폼 생성 - 단계적으로 ... 355
      HTML 코드 보기 ... 356
      브라우저 뷰 ... 356
      툴바 ... 356
      컨트롤 ... 357
      이벤트 핸들링 ... 357
      파일 ... 358
      이벤트 핸들러 코딩 - 단계별 ... 358
      디버깅 ... 360
      다른 브라우저에서의 시험 ... 360
   웹 폼의 레이아웃 ... 361
      페이지 레이아웃 ... 361
      레이아웃을 위해 테이블 사용하기 ... 361
   검증자 컨트롤의 사용 ... 363
   웹 프로젝트 관리 ... 365
      파일의 위치 ... 365
      프로젝트 옮기기 ... 365
      웹 프로젝트 지우기 ... 366
   몇 가지 웹 두문자어 ... 367
   프로그램밍 실습 예제 ... 367
10. 데이터베이스 파일 액세스 ... 375
   데이터베이스 파일 ... 376
      C#과 데이터베이스 파일 ... 376
      데이터베이스 용어 ... 376
      XML 데이터 ... 377
   ADO.NET과 C# 사용 ... 378
      Connection 생성 ... 380
      데이터 어댑터 설정 ... 382
      데이터셋 정의하기 ... 386
      컨트롤에 데이터 바인딩 ... 387
   데이터베이스 응용 생성 ... 387
      바운드 데이터그리드 컨트롤 생성 - 단계별 ... 387
      데이터 미리보기 ... 392
      데이터 바인딩 ... 392
   데이터 바운드 라벨을 사용 ... 393
      데이터셋을 이용한 네비게이션 ... 393
      레코드 개수 검색 ... 394
      레이블에 데이터 바인딩 - 단계별 ... 394
   콤보박스에 데이터 넣기 ... 398
      리스트 채우기 - 윈도우 폼 ... 399
      여러 개의 데이터 어댑터 사용하기 ... 399
      매개변수를 가진 쿼리 생성 ... 399
      선택된 항목을 위하여 데이터 표시 ... 400
      웹 폼 사용 ... 402
      웹 응용을 위한 데이터베이스 보안 ... 403
   이식성 있는 데이터베이스 프로젝트 작성 ... 403
   프로그래밍 실습 예제 ... 405
11. 데이터와 객체를 파일에 저장하기 ... 413
   데이터 파일 ... 414
      데이터 파일과 프로젝트 파일 ... 414
      데이터 파일 용어론 ... 414
      데이트를 파일에 기록하기 ... 415
      파일에서 데이터 읽기 ... 418
   파일 공통 대화상자를 사용하기 ... 422
      OpenFileDialog 컴포넌트 속성 ... 422
      Open File 대화상자를 디스플레이하기 ... 422
      파일 쓰기 프로그램 ... 424
   리스트 박스의 내용을 저장하기 ... 426
      리스트 박스를 적재하기 ... 427
      파일의 존재를 검사하기 ... 427
      파일을 저장하기 ... 428
      사용자에게 저장하기를 질문하기 ... 428
      Form_Closing 이벤트 핸들러 ... 429
      프로그래밍 예제 ... 429
   데이터 파일 ... 433
      클래스를 시리얼라이즈할 수 있도록 만들기 ... 433
      Formatter 객체를 추가하기 ... 433
      FileStream을 사용하기 ... 434
      객체 저장하기 ... 434
      객체를 재생성하기 ... 435
   프로그래밍 실습 예제 ... 436
12. 그래픽과 애니메이션 ... 447
   윈도우와 웹에서의 그래픽 ... 448
   그래픽스 환경 ... 448
      그래픽 그리기를 위한 단계 ... 448
      Paint 이벤트 핸들러 ... 449
      Pen과 Brush 객체 ... 449
      좌표계 ... 451
      Graphics 메소드 ... 452
   난수 ... 454
   간단한 애니메이션 ... 457
      애니메이션 그래픽을 디스플레이하기 ... 457
      실행 시점에 픽처들을 제어하기 ... 457
      픽처를 이동하기 ... 459
   타이머 컴포넌트 ... 460
   스크롤 바 컨트롤 ... 462
      스크롤 바 속성 ... 463
      스크롤 바 이벤트 ... 464
      프로그래밍 예제 ... 464
   프로그래밍 실습 예제 ... 466
13. C#의 기타 주제 ... 473
   다중 문서 <B><FONT color ... #0000
      MDI 프로젝트 생성하기 ... 475
      Window 메뉴 추가하기 ... 475
   툴바와 상태 바 ... 476
      이미지 리스트 ... 477
      툴바 ... 477
      상태 바 ... 479
   다른 컨트롤들 ... 481
      달력 컨트롤 ... 481
   크리스털 보고서 ... 484
      보고서 디자이너 추가하기 ... 484
      보고서 생성하기 - 단계별 ... 485
      보고서 디자이너 ... 489
      웹 폼에 보고서를 추가하기 ... 491
      크리스털 보고서 프로젝트를 이동하기 ... 491
A. 피드백 질문의 답 ... 495
B. 날짜, 수학, 문자열 연산을 다루는 메소드 ... 507
   날짜 다루기 ... 508
      DateTime 구조체 ... 508
      시스템 날짜와 시간 검색하기 ... 509
      날짜 변수 ... 509
      값을 날짜 형식으로 변환하기 ... 509
   수학적 함수 ... 510
   문자열 다루기 ... 511
C. 환경에 정통하기 위한 팁과 바로가기 ... 515
   화면을 편리하게 설정하기 ... 516
      나머지 창들을 닫거나 숨기기 ... 516
      전체 화면 사용 ... 518
      화면 레이아웃 수정 ... 518
      작업을 위한 옵션 설정 ... 519
      동적 도움말 해제 ... 519
   폼 디자이너에서 바로가기를 사용하기 ... 520
      같은 종류의 컨트롤을 여러 개 생성하기 ... 520
      레이아웃 툴바 사용하기 ... 520
      컨트롤을 조금씩 밀기 ... 520
      컨트롤을 신속하게 복사하기 ... 521
   편집기에서 바로가기를 사용하기 ... 521
      텍스트 편집기 툴바 사용하기 ... 521
      코드를 편집할 때 키보드 바로가기 사용하기 ... 522
      편집기 창을 나누기 ... 523
      드래그-앤드-드롭 편집을 사용하기 ... 523
      태스크 리스트를 사용하기 ... 523
   클래스 뷰 창을 사용하기 ... 523
   객체 브라우저를 사용하기 ... 524
   문맥-민감형(Context-Sensitive) 도움말 사용하기 ... 525
   프로젝트를 복사하고 이동하기 ... 525
      윈도우 프로젝트를 복사하고 이동하기 ... 525
      웹 프로젝트를 복사하고 이동하기 ... 526
      데이터베이스 프로젝트를 복사하고 이동하기 ... 526
D. C#과 비주얼 베이직의 비교 ... 529
용어집 ... 534
색인 ... 550
닫기