我的一位同事在一个内部论坛上发布了一个问题,这让我想到了这是否可以通过C#来实现。基本上,他有一个界面如下:访问内部类型
public interface IProvider<T>
{
T GetT();
}
是否有可能使用一些实现该接口的类型参数到另一个泛型类,并有机会获得T型,而无需重新指定呢?例如:
public class Foo<P> where P : IProvider<T>
{
P p;
T GetInnerT() { return p.GetT(); }
}
这并不编译,因为类型T没有定义,因此不能被用作用于IProvider
参数。这是甚么可能吗?只是好奇!