처음부터 끝까지 입문자를 배려한 C# 입문서
『뇌를 자극하는 C# 4.0』을 시작으로 2011년부터 꾸준히 개정하며 독자의 신뢰를 쌓아온 『이것이
C#이다』이 C# 9.0 버전에 맞춰 코드와 내용을 개정해 돌아왔다. C#과 닷넷 세계에 처음 입문하는
독자를 대상으로 집필한 이 책은 강의를 듣는 듯 편한 구어체로 프로그램의 역사와 기초 문법부터 가비지
컬렉션까지 C#의 방대한 내용을 집대성했다.
친절한 설명, 직관적인 예제, 직강 동영상, 여기에 저자가 직접 질문에 답해주는 커뮤니티까지
올인원으로 구성된 이 책을 발판 삼아 C# 입문자에서 전문가로 성장해보자.
이 책이 필요한 독자
- 컴퓨터공학 전공자로 C#만큼은 제대로 배우고 싶다.
- 프로젝트 때문에 C#을 새로 배워야 한다.
- 게임을 만들고 싶어 C#을 배우려 한다.
저자 소개
저자 : 박상현
한화시스템에서 방위 분야의 프로그래머로 일하고 있습니다. 최근까지는 방공 무기체계에 탑재되는 소프트웨어를 개발해 왔습니다. 컴퓨터 하드웨어와 소프트웨어 모두를 사랑하는 경력 17년차 엔지니어입니다.
목 차
__목차
__지은이 글
__일러두기
__학습 로드맵
chapter 1 프로그래밍을 시작합시다
__1.1 프로그래밍 언어의 역사
__1.2 C#의 기본 파일과 환경 설정
chapter 2 처음 만드는 C# 프로그램
__2.1 Hello, World!
__2.2 첫 번째 프로그램 뜯어보기
__2.3 CLR에 대하여
chapter 3 데이터 보관하기
__3.1 다양한 데이터의 종류
__3.2 변수
__3.3 값 형식과 참조 형식
__3.3.2 힙과 참조 형식
__3.4 기본 데이터 형식
__3.5 상수와 열거 형식
__3.6 Nullable 형식
__3.7 var: 데이터 형식을 알아서 파악하는 똑똑한 C# 컴파일러
__3.8 공용 형식 시스템
__3.9 문자열 다루기
chapter 4 데이터를 가공하는 연산자
__4.1 C#에서 제공하는 연산자 둘러보기
__4.2 산술 연산자
__4.3 증가 연산자와 감소 연산자
__4.4 문자열 결합 연산자
__4.5 관계 연산자
__4.6 논리 연산자
__4.7 조건 연산자
__4.8 null 조건부 연산자
__4.9 비트 연산자
__4.10 할당 연산자
__4.11 null 병합 연산자
__4.12 연산자의 우선순위
chapter 5 코드의 흐름 제어하기
__5.1 분기문
__5.2 반복문
__5.3 점프문
chapter 6 메소드로 코드 간추리기
__6.1 메소드란?
__6.2 return에 대하여
__6.3 매개변수에 대하여
__6.4 참조에 의한 매개변수 전달
__6.5 메소드의 결과를 참조로 반환하기
__6.6 출력 전용 매개변수
__6.7 메소드 오버로딩
__6.8 가변 개수의 인수
__6.9 명명된 인수
__6.10 선택적 인수
__6.11 로컬 함수
chapter 7 클래스
__7.1 객체지향 프로그래밍과 클래스
__7.2 클래스의 선언과 객체의 생성
__7.3 객체의 삶과 죽음에 대하여: 생성자와 종료자
__7.4 정적 필드와 메소드
__7.5 객체 복사하기: 얕은 복사와 깊은 복사
__7.6 this 키워드
__7.7 접근 한정자로 공개 수준 결정하기
__7.8 상속으로 코드 재활용하기
__7.9 기반 클래스와 파생 클래스 사이의 형식 변환, 그리고 is와 as
__7.10 오버라이딩과 다형성
__7.11 메소드 숨기기
__7.12 오버라이딩 봉인하기
__7.13 읽기 전용 필드
__7.14 중첩 클래스
__7.15 분할 클래스
__7.16 확장 메소드
__7.17 구조체
__7.18 튜플
chapter 8 인터페이스와 추상 클래스
__8.1 인터페이스의 선언
__8.2 인터페이스는 약속이다
__8.3 인터페이스를 상속하는 인터페이스
__8.4 여러 개의 인터페이스, 한꺼번에 상속하기
__8.5 인터페이스의 기본 구현 메소드
__8.6 추상 클래스: 인터페이스와 클래스 사이
chapter 9 프로퍼티
__9.1 public 필드의 유혹
__9.2 메소드보다 프로퍼티
__9.3 자동 구현 프로퍼티
__9.4 프로퍼티와 생성자
__9.5 초기화 전용(Init-Only) 자동 구현 프로퍼티
__9.6 레코드 형식로 만드는 불변 객체
__9.7 무명 형식
__9.8 인터페이스의 프로퍼티
__9.9 추상 클래스와 프로퍼티
chapter 10 배열과 컬렉션 그리고 인덱서
__10.1 All for one, one for all
__10.2 배열을 초기화하는 방법 세 가지
__10.3 알아두면 삶이 윤택해지는 System.Array
__10.4 배열 분할하기
__10.5 2차원 배열
__10.6 다차원 배열
__10.7 가변 배열
__10.8 컬렉션 맛보기
__10.9 컬렉션을 초기화하는 방법
__10.10 인덱서
__10.11 foreach가 가능한 객체 만들기
chapter 11 일반화 프로그래밍
__11.1 일반화 프로그래밍이란?
__11.2 일반화 메소드
__11.3 일반화 클래스
__11.4 형식 매개변수 제약시키기
__11.5 일반화 컬렉션
__11.6 foreach를 사용할 수 있는 일반화 클래스
chapter 12 예외 처리하기
__12.1 예외에 대하여
__12.2 try~catch로 예외 받기
__12.3 System.Exception 클래스
__12.4 예외 던지기
__12.5 try~catch와 finally
__12.6 사용자 정의 예외 클래스 만들기
__12.7 예외 필터하기
__12.8 예외 처리 다시 생각해보기
chapter 13 대리자와 이벤트
__13.1 대리자란?
__13.2 대리자는 왜, 그리고 언제 사용하나요?
__13.3 일반화 대리자
__13.4 대리자 체인
__13.5 익명 메소드
__13.6 이벤트: 객체에 일어난 사건 알리기
__13.7 대리자와 이벤트
chapter 14 람다식
__14.1 람다식, 너는 어디에서 왔니?
__14.2 처음 만나는 람다식
__14.3 문 형식의 람다식
__14.4 Func와 Action으로 더 간편하게 무명 함수 만들기
__14.5 식 트리
__14.6 식으로 이루어지는 멤버
chapter 15 LINQ
__15.1 데이터! 데이터! 데이터!
__15.2 LINQ의 기본: from, where, orderby, select
__15.3 여러 개의 데이터 원본에 질의하기
__15.4 group by로 데이터 분류하기
__15.5 두 데이터 원본을 연결하는 join
__15.6 LINQ의 비밀과 LINQ 표준 연산자
chapter 16 리플렉션과 애트리뷰트
__16.1 리플렉션
__16.1.3 형식 내보내기
__16.2 애트리뷰트
chapter 17 dynamic 형식
__17.1 dynamic 형식 소개
__17.2 COM과 .NET 사이의 상호 운용성을 위한 dynamic 형식
__17.3 동적 언어와의 상호 운용성을 위한 dynamic 형식
chapter 18 파일 다루기
__18.1 파일 정보와 디렉터리 정보 다루기
__18.2 파일을 읽고 쓰기 위해 알아야 할 것들
__18.3 실수를 줄여주는 using 선언
__18.4 이진 데이터 처리를 위한 BinaryWriter/BinaryReader
__18.5 텍스트 파일 처리를 위한 StreamWriter/StreamReader
__18.6 객체 직렬화하기
chapter 19 스레드와 태스크
__19.1 프로세스와 스레드
__19.1.5 스레드 간의 동기화
__19.2 Task와 Task
출판사 서평
도서 특징
1. [코드 박스]로 공식처럼 이론의 구조와 원리를 먼저 살펴보자. 이론을 실전 코드로 구현하기 전 [코드박스]를 통해 기본 문법을 확인하자. 이론과 실전 코드의 간극을 충분히 메꿔주고 무엇을 해야 하는지 좀 더 명확하게 이해할 수 있다.
2. 입문자 눈높이로 친절하게 설명한 기본 문법을 익히고 [프로그래밍 동작 원리]를 이해한다.
3. [비타민 퀴즈]와 [연습문제]라면 지루할 틈 없이 복습한다. 이론과 코드만으로 지쳐갈 즈음 [비타민 퀴즈]를 통해 학습 내용을 점검하자. 각 장의 끝에는 [연습 문제]를 배치해서 각 장의 내용을 한 번 더 복습할 수 있다. 책의 구성을 따라가면 자연스럽게 복습까지 할 수 있다.
4. [직강 동영상]과 [커뮤니티]를 통해 학습 효과를 높이자. 책으로 부족한 부분은 책과 함께 제공되는 [직강 동영상]을 통해 보충하고 [커뮤니티]에 참여해 궁금한 점을 저자에게 직접 물어보고 답변을 받을 수 있다. 통합적인 학습 지원으로 좀 더 효과적으로 학습할 수 있다.