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/

반응형

+ Recent posts