[[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]