C#을 다루는 기술

C#을 다루는 기술

$37.36
Description
C#을 C#답게 사용하자!
200개의 예제로 실습하며 배우는 간결하고 효과적인 C# 작성법!
이 책의 목표는 여러분이 C#을 최대한 편안하게 사용하도록 하는 것이다. C#의 주요 기능을 다루는 것은 물론이고, 그 내부 동작 방식을 C# 전문가인 저자만의 경험과 매력적인 통찰로 담아내 C#을 C#답게 사용하도록 돕는다. 또한, 200개가 넘는 현실적인 예제를 통해 문제를 해결하고 생산성 높은 코드를 작성하는 방법을 알려준다.
저자

존스킷

(JonSkeet)

구글의소프트웨어엔지니어로런던사무소에서근무하고있다.담당업무는구글클라우드플랫폼용.NET클라이언트라이브러리를개발하는것인데,이는구글과C#에대한열정을동시에쏟아부을수있는일이다.C#표준화를담당하는ECMA기술그룹의소장이며.NET파운데이션에서구글을대표하고있다.개발자를위한질의응답사이트인스택오버플로(StackOverflow)에자주참여하여이를통해잘알려져있다.그외에도콘퍼런스와사용자그룹,블로그에서연설하고글을쓰는것을즐긴다.이모든것의공통점은다른개발자와함께하는방법이라는것이며,이를통해많은것을배운다.

목차

1부C#에대해서

1장C#개발자로살아남기
1.1진화하는언어
__1.1.1어떤규모의응용프로그램에도유용한타입시스템
__1.1.2더욱간결한코드작성
__1.1.3LINQ를이용한단순한데이터사용
__1.1.4비동기
__1.1.5효율과복잡성사이의균형
__1.1.6쾌속진화:부버전도입
1.2진화하는플랫폼
1.3진화하는커뮤니티
1.4진화하는책
__1.4.1이책이다루는범위
__1.4.2NodaTime을이용하는예제
__1.4.3용어선택
1.5요약

2부C#2-5

2장C#2
2.1제네릭
__2.1.1예제를통한소개:제네릭이전의컬렉션
__2.1.2시간을절약하는제네릭
__2.1.3제네릭이될수있는것
__2.1.4메서드의타입인수에대한타입추론
__2.1.5타입제약조건
__2.1.6default와typeof연산자
__2.1.7제네릭타입의초기화와상태
2.2null가능값타입
__2.2.1목적:정보가없음을나타내는방법
__2.2.2CLR과프레임워크의지원:Nullable〈T〉구조체
__2.2.3언어지원
2.3델리게이트작성단순화
__2.3.1메서드그룹변환
__2.3.2익명메서드
__2.3.3델리게이트의호환성
2.4이터레이터
__2.4.1이터레이터소개
__2.4.2지연수행
__2.4.3yield문의평가
__2.4.4지연수행의중요성
__2.4.5finally블록의평가
__2.4.6finally처리의중요성
__2.4.7구현방식에대한밑그림
2.5부가기능
__2.5.1partial타입
__2.5.2정적클래스
__2.5.3속성접근자에대해별도의접근한정자지정
__2.5.4네임스페이스별칭
__2.5.5pragma지시자
__2.5.6고정길이버퍼
__2.5.7InternalsVisibleTo
2.6요약

3장C#3:LINQ그리고함께제공되는모든것
3.1자동구현속성
3.2암시적타이핑
__3.2.1타이핑관련용어
__3.2.2지역변수에대한암시적타이핑(var)
__3.2.3배열에대한암시적타입지정
3.3객체초기화구문과컬렉션초기화구문
__3.3.1객체초기화구문과컬렉션초기화구문소개
__3.3.2객체초기화구문
__3.3.3컬렉션초기화구문
__3.3.4단일표현식으로초기화를수행하는방식의이점
3.4익명타입
__3.4.1문법과기본적인동작방식
__3.4.2컴파일러가생성한타입
__3.4.3한계
3.5람다표현식
__3.5.1람다표현식문법
__3.5.2변수캡처
__3.5.3표현식트리
3.6확장메서드
__3.6.1확장메서드의선언
__3.6.2확장메서드의수행
__3.6.3연쇄적메서드호출
3.7쿼리표현식
__3.7.1쿼리표현식은C#에서C#으로의변환
__3.7.2범위변수와투명구분자
__3.7.3LINQ에어떤구문을사용할지언제판단할것인가?
3.8최종결과물:LINQ
3.9요약

4장C#4:상호운용성의개선
4.1동적타이핑
__4.1.1동적타이핑소개
__4.1.2리플렉션을넘어선동적타이핑의동작방식
__4.1.3내부동작에대한개요
__4.1.4동적타이핑의한계와놀라운점
__4.1.5동적타입사용가이드
4.2선택적매개변수와명명된인수
__4.2.1기본값을가진매개변수와이름을가진인수
__4.2.2메서드호출의의미규정
__4.2.3버전관리에미치는영향
4.3COM상호운용성의개선
__4.3.1PrimaryInteropAssembly링크
__4.3.2COM에서선택적매개변수활용
__4.3.3명명된인덱서
4.4제네릭변성
__4.4.1변성에대한간단한사용예
__4.4.2인터페이스와델리게이트선언시변성을지정하는문법
__4.4.3변성의제약사항
__4.4.4제네릭변성에대한실용적사례
4.5요약

5장비동기코드작성
5.1비동기함수소개
__5.1.1비동기와의첫만남
__5.1.2첫번째예제쪼개기
5.2비동기에대해
__5.2.1비동기수행의기본
__5.2.2동기화컨텍스트
__5.2.3비동기메서드모델링
5.3비동기메서드선언
__5.3.1비동기메서드의반환타입
__5.3.2비동기메서드의매개변수
5.4await표현식
__5.4.1대기가능패턴
__5.4.2대기표현식의제약사항
5.5반환값을둘러싸고있는부분
5.6비동기메서드의흐름
__5.6.1무엇을언제까지대기하는가?
__5.6.2대기표현식의평가
__5.6.3대기가능패턴멤버의이용
__5.6.4예외뜯어보기
__5.6.5메서드완료
5.7비동기익명함수
5.8C#7에도입된사용자정의태스크타입
__5.8.199.9%의사용예:ValueTask〈TResult〉
__5.8.2나머지0.1%의사용예:사용자정의태스크타입작성
5.9C#7.1에서지원하는비동기Main메서드
5.10활용팁
__5.10.1ConfigureAwait로컨텍스트를저장하는것을피하라
__5.10.2여러작업이독립적으로수행될수있도록작성하고이를병렬적으로수행하라
__5.10.3동기코드와비동기코드를섞어쓰지마라
__5.10.4취소가가능하도록코드를작성하라
__5.10.5비동기성을테스트하라
5.11요약

6장비동기구현
6.1컴파일러가생성한코드의구조
__6.1.1스텁메서드:사전준비와첫걸음떼기
__6.1.2상태머신의구조
__6.1.3MoveNext()메서드(고수준)
__6.1.4SetStateMachine메서드와상태머신박싱의조화
6.2MoveNext()의간단한구현
__6.2.1구체적인예
__6.2.2MoveNext()메서드의일반적인구조
__6.2.3대기표현식에대한고찰
6.3제어흐름이MoveNext()에미치는영향
__6.3.1대기표현식사이의제어흐름은단순하다
__6.3.2루프내에대기표현식이있는경우
__6.3.3try/finally블록내에대기표현식이있는경우
6.4실행컨텍스트와흐름
6.5사용자정의태스크타입재검토
6.6요약

7장C#5의보너스기능
7.1foreach루프내에서변수캡처
7.2호출자정보특성
__7.2.1기본적인동작
__7.2.2로깅
__7.2.3INotifyPropertyChanged구현단순화
__7.2.4호출자정보특성의지엽적특이성
__7.2.5예전버전의.NET에서호출자정보특성을사용하는방법
7.3요약

3부C#6

8장매우세련된속성과표현식본문멤버
8.1속성의간단한역사
8.2업그레이드된자동구현속성기능
__8.2.1읽기전용자동구현속성
__8.2.2자동구현속성초기화
__8.2.3구조체내의자동구현속성
8.3표현식본문멤버
__8.3.1계산이필요한읽기전용속성을더간단히구현하는방법
__8.3.2표현식본문메서드,표현식본문인덱서,표현식본문연산자
__8.3.3C#6의표현식본문멤버가가지는제약사항
__8.3.4표현식본문멤버사용지침
8.4요약

9장문자열관련기능
9.1NET에서문자열포매팅을수행하는방법요약
__9.1.1단순문자열포매팅
__9.1.2포맷문자열을이용하여사용자정의포매팅수행하기
__9.1.3현지화
9.2보간문자열리터럴소개
__9.2.1간단한보간
__9.2.2보간문자열리터럴내에서의포맷문자열
__9.2.3보간축자문자열리터럴
__9.2.4컴파일러가보간문자열리터럴을다루는방법(첫번째)
9.3FormattableString을사용한현지화
__9.3.1컴파일러가보간문자열리터럴을다루는방법(두번째)
__9.3.2컬처를지정하여FormattableString포매팅하기
__9.3.3FormattableString의다른사용예
__9.3.4이전버전의.NET에서FormattableString을사용하려면
9.4활용법,사용지침,한계
__9.4.1개발자와컴퓨터,하지만최종사용자는아닌…
__9.4.2보간문자열리터럴의엄격한제약
__9.4.3할수있지만해서는안될때
9.5nameof로식별자에접근
__9.5.1nameof의첫번째사용예
__9.5.2nameof의일반적인사용예
__9.5.3nameof를사용할때주의해야할트릭과함정
9.6요약

10장간결한코드작성을위한다양한기능
10.1usingstatic지시자
__10.1.1정적멤버임포트
__10.1.2확장메서드와usingstatic
10.2객체초기화자와컬렉션초기화자의개선
__10.2.1객체초기화자내에서의인덱서
__10.2.2컬렉션초기화자내에서확장메서드사용
__10.2.3테스트코드와제품코드
10.3null조건연산자
__10.3.1간단하고안전한속성역참조
__10.3.2null조건연산자에대한세부사항
__10.3.3불비교처리
__10.3.4인덱서와null조건연산자
__10.3.5null조건연산자를이용하여작업을효율적으로수행하는방법
__10.3.6null조건연산자의한계
10.4예외필터
__10.4.1예외필터의문법과의미
__10.4.2작업재시도
__10.4.3부수적으로로깅수행
__10.4.4개별적이고구체적인예외필터구성
__10.4.5단순히throw만쓰는것은어떤가?
10.5요약

4부C#7그리고그이후

11장튜플을이용한구성
11.1튜플소개
11.2튜플리터럴과튜플타입
__11.2.1문법
__11.2.2튜플리터럴에서추론된요소이름(C#7.1)
__11.2.3여러변수를담을수있는가방처럼튜플활용
11.3튜플타입과변환
__11.3.1튜플리터럴의타입
__11.3.2튜플리터럴을튜플타입으로변환
__11.3.3튜플타입간변환
__11.3.4튜플변환의사용
__11.3.5상속시튜플의요소이름확인
__11.3.6같음연산자와같지

출판사 서평

C#의내부동작방식을이해하여
간결하고생산성높은코드를작성하자!

버전별주요기능을이해한다
제네릭,null가능값타입,익명메서드,이터레이터,LINQ,람다표현식,익명타입,객체초기화자,쿼리표현식,동적타이핑,async/await,비동기메서드,표현식본문멤버,자동구현속성,문자열관련기능,튜플,switch표현식,패턴매칭등다양한기능을현실적인예제와함께배운다.

예제200개로생산성을높이는C#작성법을배운다
단순히C#공식문서에있을법한사용법만나열하는것이아니라,200개가넘는예제코드로문제를해결하는다양한해법을구체적으로제시한다.그리고이과정을지속적으로거치면서C#코드를간소화하고생산성을높이는방법을체득할수있다.

C#내부동작방식을이해하여C#전문가로발돋움하자!
이책은C#의내부동작방식을존스킷만의경험과매력적인통찰로담아냈다.이를통해C#의면면을들여다보고숨겨진트릭을발견하여C#을좀더C#답게설계하고프로그래밍기술을극대화하도록돕는다.