인터페이스에 확장 방법을 적용 할 수 있습니까? (인터페이스에 확장 방법을 적용 할 수 있습니까?
이 인터페이스 확장 방법하여 만드는 ITopology 인터페이스
를 만드는 등 공공 정적 INT CountNodes (이 ITopology topologyIf를 예를 들어 인 (C# 1 질문)
는 다음 달성))
그러면 ITopology를 구현하는 클래스 (예 : MyGraph)를 만들면 자동으로 Count Nodes 확장이 생깁니다.
이렇게 인터페이스를 구현하는 클래스는 확장 메소드에 정의 된 것과 일치하도록 설정된 클래스 이름을 가질 필요가 없습니다.
Re : "당연히"- 내 생각에이 질문은 귀하가 암시 적으로 언급 한 아키텍처의 냄새를 드러내고 있다고 생각합니다. 인터페이스에서 확장 기능을 사용할 수 있다면 구현 된 메소드가 인터페이스에 포함되어있을 수없는 이유는 무엇입니까? 어느 한 인터페이스가 구체적인 방법을 가질 수 있어야한다고 생각하는 것은 이해할 만합니다. 그렇지 않다면 확장 메서드가 실행 가능한 kludge로 허용되어서는 안된다고 생각하면 이해할 수 있습니다. (그러나 그들은 훌륭합니다. "LINQ"가 아닌 "당연히"그리고 IEnum에 대한 링크 만 제공합니다. (https://github.com/dotnet/corefx/blob/master/src/System.Linq/ src/System/Linq/Contains.cs).;^D) 뭔가 냄새나요! – ruffin