gpt4 book ai didi

c# - 希望有一个通用的 Wrapper 类可用

转载 作者:行者123 更新时间:2023-11-30 18:06:38 26 4
gpt4 key购买 nike

出于继承的目的,我希望有以下可用的类,但我自己无法编写:

class Wrapper<G> : G
{
public Wrapper(G base);
protected G GetBase();
}

它将像往常一样继承 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();
}
}

最佳答案

不确定这是否是您想要的,但您可以使用 DynamicProxy在运行时创建包装器对象并根据需要拦截方法和属性调用。

关于c# - 希望有一个通用的 Wrapper 类可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4669974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com