C# 프로그래밍 역량을 쌓을 수 있도록 C# 언어 전체에 대해 포괄적인 튜토리얼을 제공한다. 핵심 C# 개선 사항과 구조를 묘사하는 간결한 예제, 버그를 최소화하고 발전하기 쉬운 코드를 작성하기 위한 업데이트된 코딩 지침을 포함한다. C# 6.0, 7.0, 8.0 주제에 대한 버전별 인덱스와 각 언어 버전을 소개할 때 시각적인 아이콘을 제공해 필요한 내용을 빠르게 찾을 수 있도록 구성했다. 또한 한국어판 부록을 추가해 C# 9.0의 새로운 기능을 소개한다.
Contents
1장. C# 소개
Hello, World
C# 구문 기초
Main 메서드
변수 사용
콘솔 입력과 출력
관리되는 실행과 공용 언어 기반
여러 가지 .NET 프레임워크
요약
2장. 데이터 형식
기본 숫자 형식
더 알아야 할 기본 형식
데이터 형식 간의 변환
요약
3장. 고급 데이터 형식
형식 범주
null을 허용하는 형식 선언하기
튜플
배열
요약
4장. 연산자와 흐름 제어
연산자
코드 블록({})
코드 블록, 범위, 선언 공간
부울 식
프로그래밍에 null 사용하기
비트 단위 연산자(〈〈, 〉〉,., &, ^, ~)
흐름 제어 구문(계속)
점프문
C# 전처리 지시문
요약
5장. 메서드와 매개변수
메서드 호출
메서드 선언
using 지시문
Main()의 반환과 매개변수
메서드 매개변수 심화
선택적 매개변수
예외를 사용한 기본 에러 처리
요약
6장. 클래스
클래스 선언과 인스턴스 생성
인스턴스 필드
인스턴스 메서드
this 키워드 사용하기
액세스 한정자
속성
생성자
생성자가 있는 null 비허용 참조 형식 속성
null 허용 특성
분해자
정적 멤버
확장 메서드
데이터 캡슐화
중첩 클래스
부분 클래스
요약
7장. 상속
파생
기본 클래스 재정의
추상 클래스
System.Object에서 파생된 모든 클래스
is 연산자를 사용한 패턴 매칭
switch 문 내에서 패턴 매칭
다형성이 사용될 때 패턴 매칭 피하기
요약
8장. 인터페이스
인터페이스 소개
인터페이스를 통한 다형성
인터페이스 구현
클래스와 인터페이스 구현 간의 변환
다중 인터페이스 상속
인터페이스의 확장 메서드
버전 관리
인터페이스를 통한 다중 상속 구현
확장 메서드 vs. 기본 인터페이스 멤버
인터페이스와 추상 클래스의 비교
인터페이스와 특성 비교
요약
9장. 값 형식
구조체
박싱
열거형
요약
10장. 잘 구성된 형식
object 멤버 재정의
연산자 오버로딩
다른 어셈블리 참조하기
형식의 캡슐화
네임스페이스 정의
XML 주석
가비지 수집
리소스 정리
초기화 지연
요약
11장. 예외 처리
다중 예외 형식
예외 잡기
기존 예외 다시 던지기
일반 catch 블록
예외 처리를 위한 지침
사용자 지정 예외 정의하기
래핑한 예외 다시 던지기
요약
12장. 제네릭
제네릭 없는 C#
제네릭 형식 소개
제약 조건
제네릭 메서드
공변과 반공변
제네릭의 내부
요약
13장. 대리자와 람다 식
대리자 소개
대리자 형식의 선언
람다 식
문 람다
무명 메서드
대리자와 구조적 동등성
외부 변수
식 트리
요약
14장. 이벤트
멀티캐스트 대리자를 이용한 게시-구독 패턴 구현
이벤트
요약
15장. 컬렉션 인터페이스와 표준 질의 연산자
컬렉션 이니셜라이저
클래스를 컬렉션으로 만들어 주는 IEnumerable
표준 질의 연산자
무명 형식과 LINQ
요약
16장. LINQ와 질의 식
질의 식 소개
질의 식은 메서드 호출
요약
17장. 사용자 지정 컬렉션
기타 컬렉션 인터페이스
주요 컬렉션 클래스
인덱서 지원
null 혹은 빈 컬렉션의 반환
반복기
요약
18장. 리플렉션, 특성, 동적 프로그래밍
리플렉션
nameof 연산자
특성
동적 개체를 이용하는 프로그래밍
요약
19장. 다중 스레딩
다중 스레딩 기초
비동기 태스크
태스크 취소
System.Threading 이용하기
요약
20장. 태스크 기반 비동기 패턴
긴 대기 시간을 요구하는 작업의 동기적 호출
긴 대기 시간을 요구하는 작업의 비동기적 호출(TPL 이용)
async와 await을 이용한 태스크 기반의 비동기 패턴
비동기 ValueTask〈T〉 반환
비동기 스트림
IAsyncDisposable과 await using 이용
LINQ에서 IAsyncEnumerable 이용하기
void 반환 비동기 메서드
비동기 람다와 지역 함수
태스크 스케줄러와 동기화 콘텍스트
async/await과 윈도우 UI
요약
21장. 병렬 반복
루프 반복의 병렬 처리
요약
22장. 스레드 동기화
왜 동기화가 필요한가?
타이머
요약
23장. 플랫폼 상호 운용성과 안전하지 않은 코드
플랫폼 호출
포인터와 주소
대리자를 통한 안전하지 않은 코드 실행
요약
24장. 공용 언어 인프라
공용 언어 인프라의 정의
CLI 구현
닷넷 스탠더드
기본 클래스 라이브러리
C#에서 기계어로의 컴파일
런타임
어셈블리, 매니페스트, 모듈
공용 중간 언어
공용 형식 시스템
공용 언어 사양
메타데이터
닷넷 네이티브와 Ahead Of Time 컴파일
요약
Author
마크 미카엘리스,안철진,김도균
혁신적인 소프트웨어 아키텍처와 개발 회사인 인텔리텍트(IntelliTect)의 창업자이며, 수석 기술 아키텍트와 트레이너로 활동한다.
전 세계를 누비며 리더십이나 기술에 관한 콘퍼런스 세션을 진행하고 마이크로소프트나 다른 클라이언트를 대신해 연사로 참여하면서 회사를 성공적으로 이끌고 있다. 그는 수많은 기사를 쓰고 여러 책을 집필했으며 이스턴 워싱턴 대학교(Eastern Washington University)의 부교수이자 스포캔(Spokane) .NET 사용자 그룹 창립자, 매년 열리는 TEDx 쿠르 달렌(Coeur d’Alene) 이벤트의 공동 주최자다.
세계적인 C# 전문가로 2007년부터 마이크로소프트 지역 디렉터이자 25년차 마이크로소프트 MVP로 활동하고 있다.
일리노이 주립 대학교(University of Illinois)에서 철학 학사 학위를 받았고 일리노이 공과 대학교(Illinois Institute of Technology)에서 컴퓨터과학 석사 학위를 받았다.
컴퓨터와 씨름하고 있지 않을 때는 다른 나라의 삶을 아이들에게 보여주거나 철인 3종 경기에 참여하느라 바쁘게 지낸다(2008년에 처음으로 철인 경주를 완주했다). 아내 엘리자베스와 세 자녀인 벤자민, 한나, 아비가일과 함께 워싱턴 주에 있는 스포캔에서 살고 있다.
혁신적인 소프트웨어 아키텍처와 개발 회사인 인텔리텍트(IntelliTect)의 창업자이며, 수석 기술 아키텍트와 트레이너로 활동한다.
전 세계를 누비며 리더십이나 기술에 관한 콘퍼런스 세션을 진행하고 마이크로소프트나 다른 클라이언트를 대신해 연사로 참여하면서 회사를 성공적으로 이끌고 있다. 그는 수많은 기사를 쓰고 여러 책을 집필했으며 이스턴 워싱턴 대학교(Eastern Washington University)의 부교수이자 스포캔(Spokane) .NET 사용자 그룹 창립자, 매년 열리는 TEDx 쿠르 달렌(Coeur d’Alene) 이벤트의 공동 주최자다.
세계적인 C# 전문가로 2007년부터 마이크로소프트 지역 디렉터이자 25년차 마이크로소프트 MVP로 활동하고 있다.
일리노이 주립 대학교(University of Illinois)에서 철학 학사 학위를 받았고 일리노이 공과 대학교(Illinois Institute of Technology)에서 컴퓨터과학 석사 학위를 받았다.
컴퓨터와 씨름하고 있지 않을 때는 다른 나라의 삶을 아이들에게 보여주거나 철인 3종 경기에 참여하느라 바쁘게 지낸다(2008년에 처음으로 철인 경주를 완주했다). 아내 엘리자베스와 세 자녀인 벤자민, 한나, 아비가일과 함께 워싱턴 주에 있는 스포캔에서 살고 있다.