U E D R , A S I H C RSS

CS/7월13일


1. 개요

  • 점점 끝이 보이나요?

3. 진행 시간

  • 2시 30분 ~ 5시
  • 6시 ~ 7시 30분
    • 2부제

4. 진행 예정 내용

  • 다소 중요하다고 생각된 내용은 보라색 볼드(굵게) 처리하였습니다.

  • #11. C# 3.0으로 올라서기
    • 타입 추론(Type Inference), var 예약어
    • 자동 구현 속성(Auto-Implemented Property)
    • 객체 초기화, 컬렉션 초기화
    • 익명 타입
    • 부분 메서드
    • 확장 메서드(Extension Method)
    • 람다 식(Lambda Expression)
    • 람다 지원 델리게이트, Action, Func, Predicate
    • Enumerable 정적 클래스와 람다 식, 컬렉션
    • 식 트리로 사용되는 람다 식
    • LINQ(Language-integrated Query)
    • LINQ와 from-in, where, group-by
    • 지연 연산(Lazy Evaluation)

  • #12. BCL Part.2
    • 메타데이터와 리플렉션
    • AppDomain
    • 리플렉션을 통한 어셈블리/모듈/타입/메서드 접근
    • 리플렉션과 코드 결합
    • 리플렉션과 플러그인(Plug-in)

  • #13. C# 4.0으로 올라서기
    • 제네릭 타입 매개변수에 대한 Covariance/Contravariance
    • 선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument)
    • 닷넷 프레임워크 속 DLR
    • dynamic 예약어
    • dynamic과 리플렉션
    • 덕 타이핑(Duck typing)

  • #14. C# 6.0으로 올라서기
    • 널 조건 연산자 (Null-conditional operator)
    • 문자열 내삽(String interpolation)
    • 인덱서 Dictionary 초기자
    • nameof 연산자
    • using static 키워드
    • Exception Filtering
    • 자동 구현 속성 초기자
    • 읽기 전용 자동 구현 속성
    • Expression-bodied member

5. 진행

5.1. 내용 요약

5.1.1. 11. C# 3.0으로 올라서기

  • var를 통해 타입을 정의하면 컴파일러가 타입을 유추하도록 할 수 있다.
  • 단순 접근/설정자 설정을 위해서는 자동 구현 속성 기능을 통해 편리하게 구현할 수 있다.
  • 객체 초기화 기능을 통해, 클라이언트가 인스턴스의 공용 속성을 생성 시 설정하도록 할 수 있다.
  • 컬렉션 초기화 기능을 통해, 컬렉션의 초기 구성 요소를 생성 시 구성할 수 있다.
  • 익명 타입을 통해, 일시적으로 데이터를 담아놓을 타입을 생성할 수 있다.
  • 부분 메서드 기능을 이용하면 메서드를 여러 곳에 분산하여 작성할 수 있다.
  • 확장 메서드 기능을 통해 상속 없이도 클래스의 지원 메서드를 확장할 수 있다.
  • 람다 식은 익명 메서드 대용이나 식 자체로 사용된다.
  • BCL에는 람다 식 이용에 필요한 델리게이트들이 미리 선언되어 있다.
  • Enumerable 정적 클래스에는 컬렉션 지원을 위한 확장 메서드가 여러 정의되어 있고, 대개는 람다 식을 이용한다.
  • 람다 식을 식 트리 용도로 사용하면 동적으로 코드를 생성하는 등의 기능이 가능하다.
  • LINQ 기능이 지원된 이후로 컬렉션 개체에 쿼리 문을 사용할 수 있다.
  • LINQ 쿼리 반환 타입을 이용하여 쿼리 문에 대한 지연 연산을 이끌어 낼 수도 있다.

5.1.2. 12. BCL Part.2

  • 리플렉션을 이용하면 닷넷 프로세스 내에 저장된 메타데이터를 이용할 수 있다.
  • AppDomain은 CLR이 만들어낸 격리 공간으로, 안에는 로드된 어셈블리들이 존재한다.
  • 리플렉션을 통해, AppDomain - Module - Type - Method 계층 구조에 접근할 수 있다.
  • 리플렉션을 통해 타입에 간접적으로 접근하여 메서드를 호출하거나 인스턴스를 생성하는 것을 느슨한 코드 결합이라고 한다.
  • 리플렉션을 이용하여 플러그인등의 기능을 지원할 수 있다.

5.1.3. 13. C# 4.0으로 올라서기

  • 제네릭 타입 매개변수에 out/in의 키워드를 이용하여 제네릭 타입 간 형변환을 지원할 수 있다.
  • 선택적 매개변수를 통해 매개변수에 기본값을 할당할 수 있으며, 명명된 인자를 통해 선택적으로 인자에 값을 넣을 수 있다.
  • dynamic 예약어를 이용하면 C#에서 동적 타입을 이용하듯이 사용할 수 있다.
  • dynamic을 이용하면 리플렉션 관련 코드를 깔끔하게 줄여 사용할 수 있다.
  • 어느 한 기능이 지원될 때, 두 인스턴스가 같은 종류의 인스턴스로 보는 관점을 덕 타이핑이라 한다.

5.1.4. 14. C# 6.0으로 올라서기

  • 널 조건 연산자를 통해 Null 값에 대한 조건 처리 후 코드 실행 과정을 간략화시킬 수 있다.
  • 문자열 내삽 기능을 통해 formatting이나 문자열 연결 없이도 변수값을 문자열 내에 넣을 수 있다.
  • 인덱서를 구현한 개체에 대해 객체 초기화 시 인덱서 초기자 기법을 사용할 수 있다.
  • nameof 연산자를 통해 어떤 필드, 클래스등의 이름을 하드코딩하지 않고도 알아낼 수 있다.
  • using static 키워드를 통해 정적 필드 사용 시 클래스 이름을 생략하도록 할 수 있따.
  • Exception Filtering 기능을 통해 특정 상황에서만 예외를 처리하도록 제한할 수 있다.
  • C# 6.0부터는 자동 구현 속성에도 초기 값을 설정할 수 있으며, 읽기 전용으로 구성하는 것도 가능하다.
  • 클래스 내 길이가 짧은 속성, 메서드들은 하나의 람다 표현식으로 정의가 가능하다.

5.2. 그 외

6. 덧글


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:43
Processing time 0.0439 sec