gpt4 book ai didi

c# - 推断子类的 C# 泛型类型

转载 作者:行者123 更新时间:2023-11-30 15:45:46 26 4
gpt4 key购买 nike

我有一个通用类 Proxy<T> ,并且我想编写另一个泛型类,其类型参数是代理。

我想写:

public class MyClass<U> where U : Proxy<T>

但编译器报告 The type or namespace name T could not be found .

我找到的一个解决方案是像这样声明它:

public class MyClass<U, T> where U : Proxy<T>

但这看起来很笨拙,因为客户端必须声明两个类型参数,如下所示:

public class SomeClass { ... }
public class SomeProxy : Proxy<SomeClass> { ... }

然后在某个客户端中:

var proxyWrapper = new MyClass<SomeProxy, SomeClass>();

如何在 MyClass 上没有 两个 泛型类型的情况下执行此操作? .毕竟,如果我们知道第一个是 SomeProxy , 第二个应该是 SomeClass .

最佳答案

也许像这样的东西也能完成这项工作?

class Test<T> {
public Test(Proxy<T> proxy) { this.MyProxy = proxy; }
public Proxy<T> MyProxy { get; private set; }
}

关于c# - 推断子类的 C# 泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899544/

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