Section 48.10: 인터페이스에 확장 메소드 조합하기
인터페이스와 함께 확장 메소드를 사용하는 것은 매우 편리한데, 이는 구현부를 클래스 외부에 위치시킬 수 있으며, 해당 기능을 추가하고자 하는 경우 클래스에 필요한 인터페이스를 상속시키기만 하면 되기 때문이다.
public interface IInterface {
string Do()
}
public static class ExtensionMethods {
public static string DoWith(this IInterface obj) {
// IInterface 인스턴스에 대한 특정 기능을 수행한다
}
}
public class Classy: IInterface {
// 아래는 단순한 래퍼 (wrapper) 메소드이다; `DoWith()` 메소드를 `Classy` 인스턴스에 대해 직접 호출할 수도 있는데,
// 이를 위해서는 확장 메소드가 포함된 네임스페이스가 import 된 상태여야 한다
public Do() {
return this.DoWith();
}
}
아래와 같이 사용한다:
var classy = new Classy();
classy.Do(); // 확장 기능을 사용한다
classy.DoWith(); // `Classy` 가 `IInterface` 를 구현 (implement)하기에 이런 방식으로 호출 가능하다
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
48.12: 인터페이스와 확장 메소드를 활용한 DRY 원칙 기반의 코드 및 mix-in 과 유사한 기능 제공하기 (0) | 2022.10.21 |
---|---|
48.11: 동적 (dynamic) 코드에서의 확장 메소드 미지원 (0) | 2022.10.21 |
48.9: 인터페이스에 확장 메소드 적용하기 (0) | 2022.10.21 |
48.8: 정적 (static) 타입에 기반한 확장 메소드 호출 (0) | 2022.10.21 |
48.7: 열거형 (Enumeration) 과 확장 메소드 (0) | 2022.09.22 |