사용할 수있는 일반적인 래퍼 클래스가 하시겠습니까 :사용할 내가 자신을 쓸 수 없습니다 다음 클래스를,하고 싶은 상속 목적
class Wrapper<G> : G
{
public Wrapper(G base);
protected G GetBase();
}
그것은 asual로 G의 모든 구성원을 상속하는 것, 그리고 이 구성원들의 모든 용도는 건설 중에 제공된 G로 재 지정됩니다.
기술적으로 C#과 같은 언어에이 기능을 추가 할 수 있습니까? 내가 이것을 사용하고 싶습니다
주요 유스 케이스는 다음과 같습니다
class Wrapper<G> : G
{
public Wrapper(G g);
}
class IGraphNode<G> where G : IGraphNode<G>
{
IEnumerable<G> ForwardNodes();
IEnumerable<G> BackwardNodes();
}
//Reverses the direction of the graph.
class Reverse<G> : Wrapper<G> where G : IGraphNode<G>
{
public Reverse(G g)
: base(g)
{ }
IEnumerable<G> ForwardNodes()
{
return base.BackwardNodes();
}
IEnumerable<G> BackwardNodes()
{
return base.ForwardNodes();
}
}
왜 필요한가요? – mdm
G가 무엇이고 Wrapper가해야 할 일에 대한 구체적인 예가 있습니까? – epitka
정규 상속에 어떤 문제가 있습니까? 이미 구현 된 종류입니까? –