Section 48.9: 인터페이스에 확장 메소드 적용하기
확장 메소드의 유용한 기능 중 하나는, 바로 인터페이스에 대한 공통 구현부를 제공할 수 있다는 것이다. 일반적으로 인터페이스는 공통 구현부를 가질 수 없는데, 확장 메소드를 이용하면 이것이 가능해진다.
public interface IVehicle
{
int MilesDriven { get; set; }
}
public static class Extensions
{
public static int FeetDriven(this IVehicle vehicle)
{
return vehicle.MilesDriven * 5028;
}
}
이 예제에서, FeetDriven
메소드는 모든 IVehicle
들에 대해 사용될 수 있다. 이 메소드에 구현된 로직은 모든 IVehicle
을 상속한 클래스들에 공통적으로 적용될 것이므로, IVehicle
선언 시 각 자식 클래스들이 동일하게 구현해야만 하는 FeetDriven
메소드를 인터페이스 내에 추가적으로 선언할 필요가 없다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
48.11: 동적 (dynamic) 코드에서의 확장 메소드 미지원 (0) | 2022.10.21 |
---|---|
48.10: 인터페이스에 확장 메소드 조합하기 (0) | 2022.10.21 |
48.8: 정적 (static) 타입에 기반한 확장 메소드 호출 (0) | 2022.10.21 |
48.7: 열거형 (Enumeration) 과 확장 메소드 (0) | 2022.09.22 |
48.6: 메소드 chaining 을 위한 확장 메소드 사용 (1) | 2022.09.22 |