[[TableOfContents]]
== 개요 ==
* 점점 끝이 보이나요?
== 참가자 ==
* [신형철], [이승현], [박인서], [성훈], [홍성현]
== 진행 시간 ==
* 2시 30분 ~ 5시
* 6시 ~ 7시 30분
* ~~2부제~~
== 진행 예정 내용 ==
* 다소 중요하다고 생각된 내용은 [[HTML(보라색 볼드(굵게))]] 처리하였습니다.
* #11. C# 3.0으로 올라서기
* [[HTML(타입 추론(Type Inference), var 예약어)]]
* [[HTML(자동 구현 속성(Auto-Implemented Property))]]
* 객체 초기화, 컬렉션 초기화
* 익명 타입
* 부분 메서드
* [[HTML(확장 메서드(Extension Method))]]
* [[HTML(람다 식(Lambda Expression))]]
* 람다 지원 델리게이트, Action, Func, Predicate
* [[HTML(Enumerable 정적 클래스와 람다 식, 컬렉션)]]
* 식 트리로 사용되는 람다 식
* [[HTML(LINQ(Language-integrated Query))]]
* [[HTML(LINQ와 from-in, where, group-by)]]
* [[HTML(지연 연산(Lazy Evaluation))]]
* #12. BCL Part.2
* [[HTML(메타데이터와 리플렉션)]]
* [[HTML(AppDomain)]]
* [[HTML(리플렉션을 통한 어셈블리/모듈/타입/메서드 접근)]]
* 리플렉션과 코드 결합
* 리플렉션과 플러그인(Plug-in)
* #13. C# 4.0으로 올라서기
* [[HTML(제네릭 타입 매개변수에 대한 Covariance/Contravariance)]]
* [[HTML(선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument))]]
* 닷넷 프레임워크 속 DLR
* [[HTML(dynamic 예약어)]]
* [[HTML(dynamic과 리플렉션)]]
* [[HTML(덕 타이핑(Duck typing))]]
* #14. C# 6.0으로 올라서기
* [[HTML(널 조건 연산자 (Null-conditional operator))]]
* [[HTML(문자열 내삽(String interpolation))]]
* [[HTML(인덱서 Dictionary 초기자)]]
* nameof 연산자
* using static 키워드
* [[HTML(Exception Filtering)]]
* [[HTML(자동 구현 속성 초기자)]]
* [[HTML(읽기 전용 자동 구현 속성)]]
* [[HTML(Expression-bodied member)]]
== 진행 ==
=== 내용 요약 ===
==== 11. C# 3.0으로 올라서기 ====
* var를 통해 타입을 정의하면 컴파일러가 타입을 유추하도록 할 수 있다.
* 단순 접근/설정자 설정을 위해서는 자동 구현 속성 기능을 통해 편리하게 구현할 수 있다.
* 객체 초기화 기능을 통해, 클라이언트가 인스턴스의 공용 속성을 생성 시 설정하도록 할 수 있다.
* 컬렉션 초기화 기능을 통해, 컬렉션의 초기 구성 요소를 생성 시 구성할 수 있다.
* 익명 타입을 통해, 일시적으로 데이터를 담아놓을 타입을 생성할 수 있다.
* 부분 메서드 기능을 이용하면 메서드를 여러 곳에 분산하여 작성할 수 있다.
* 확장 메서드 기능을 통해 상속 없이도 클래스의 지원 메서드를 확장할 수 있다.
* 람다 식은 익명 메서드 대용이나 식 자체로 사용된다.
* BCL에는 람다 식 이용에 필요한 델리게이트들이 미리 선언되어 있다.
* Enumerable 정적 클래스에는 컬렉션 지원을 위한 확장 메서드가 여러 정의되어 있고, 대개는 람다 식을 이용한다.
* 람다 식을 식 트리 용도로 사용하면 동적으로 코드를 생성하는 등의 기능이 가능하다.
* LINQ 기능이 지원된 이후로 컬렉션 개체에 쿼리 문을 사용할 수 있다.
* LINQ 쿼리 반환 타입을 이용하여 쿼리 문에 대한 지연 연산을 이끌어 낼 수도 있다.
==== 12. BCL Part.2 ====
* 리플렉션을 이용하면 닷넷 프로세스 내에 저장된 메타데이터를 이용할 수 있다.
* AppDomain은 CLR이 만들어낸 격리 공간으로, 안에는 로드된 어셈블리들이 존재한다.
* 리플렉션을 통해, AppDomain - Module - Type - Method 계층 구조에 접근할 수 있다.
* 리플렉션을 통해 타입에 간접적으로 접근하여 메서드를 호출하거나 인스턴스를 생성하는 것을 느슨한 코드 결합이라고 한다.
* 리플렉션을 이용하여 플러그인등의 기능을 지원할 수 있다.
==== 13. C# 4.0으로 올라서기 ====
* 제네릭 타입 매개변수에 out/in의 키워드를 이용하여 제네릭 타입 간 형변환을 지원할 수 있다.
* 선택적 매개변수를 통해 매개변수에 기본값을 할당할 수 있으며, 명명된 인자를 통해 선택적으로 인자에 값을 넣을 수 있다.
* dynamic 예약어를 이용하면 C#에서 동적 타입을 이용하듯이 사용할 수 있다.
* dynamic을 이용하면 리플렉션 관련 코드를 깔끔하게 줄여 사용할 수 있다.
* 어느 한 기능이 지원될 때, 두 인스턴스가 같은 종류의 인스턴스로 보는 관점을 덕 타이핑이라 한다.
==== 14. C# 6.0으로 올라서기 ====
* 널 조건 연산자를 통해 Null 값에 대한 조건 처리 후 코드 실행 과정을 간략화시킬 수 있다.
* 문자열 내삽 기능을 통해 formatting이나 문자열 연결 없이도 변수값을 문자열 내에 넣을 수 있다.
* 인덱서를 구현한 개체에 대해 객체 초기화 시 인덱서 초기자 기법을 사용할 수 있다.
* nameof 연산자를 통해 어떤 필드, 클래스등의 이름을 하드코딩하지 않고도 알아낼 수 있다.
* using static 키워드를 통해 정적 필드 사용 시 클래스 이름을 생략하도록 할 수 있따.
* Exception Filtering 기능을 통해 특정 상황에서만 예외를 처리하도록 제한할 수 있다.
* C# 6.0부터는 자동 구현 속성에도 초기 값을 설정할 수 있으며, 읽기 전용으로 구성하는 것도 가능하다.
* 클래스 내 길이가 짧은 속성, 메서드들은 하나의 람다 표현식으로 정의가 가능하다.
=== 그 외 ===
== 덧글 ==
--------------------------------
[CS]