Section 48.14: 확장 메소드를 통한 강력한 형식 (strongly typed) 의 래퍼 (wrapper) 작성하기
확장 메소드를 이용하면 Dictionary
와 유사한 객체들에 대한 강력한 형식 (strongly typed) 기반의 래퍼 (wrapper) 를 작성할 수 있다. 예를 들면 캐시라던가, HttpContext.Items
등등이 이에 해당한다.
public static class CacheExtensions {
public static void SetUserInfo(this Cache cache, UserInfo data) =>
cache["UserInfo"] = data;
public static UserInfo GetUserInfo(this Cache cache) =>
cache["UserInfo"] as UserInfo;
}
이러한 접근 방식은 코드 전반에 걸쳐 스트링 리터럴을 키 (key) 로 사용한다거나 값을 읽을 때 원하는 타입으로의 캐스팅을 해야 한다거나 하는 필요를 없애준다. 종합적으로 보면, 이는 Dictionary
와 같은 느슨한 형식 (loosely typed) 을 갖는 객체를 보다 안전하고 강력한 형식 (strongly typed) 기반으로 사용할 수 있는 방법을 제공한다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
48.16: 확장 메소드를 사용하여 새로운 collection 타입 (예:DictList) 생성하기 (0) | 2022.12.01 |
---|---|
48.15: 확장 메소드를 사용하여 편리한 mapper 클래스 만들기 (0) | 2022.12.01 |
48.13: IList<T> 에 대한 확장 메소드 예제 - 2 개의 List 비교하기 (0) | 2022.12.01 |
48.12: 인터페이스와 확장 메소드를 활용한 DRY 원칙 기반의 코드 및 mix-in 과 유사한 기능 제공하기 (0) | 2022.10.21 |
48.11: 동적 (dynamic) 코드에서의 확장 메소드 미지원 (0) | 2022.10.21 |