C# 泛型接口类型限制另一个泛型接口

C# 泛型接口类型限制另一个泛型接口,c#,.net,class,generics,interface,C#,.net,Class,Generics,Interface,如何实现限制泛型接口类型的泛型接口 interface A<T> interface B<T> where T: class 接口A 接口B,其中T:class 我需要将接口A限制为具有任何类类型的接口B 我在想它可能看起来像 interface A<T> where T : B<T> 接口A,其中T:B 或 接口A,其中T:class 但两者似乎都不起作用 有什么解决办法吗?你设计得太多了。 只需这样做: interface A<

如何实现限制泛型接口类型的泛型接口

interface A<T>

interface B<T> where T: class
接口A
接口B,其中T:class
我需要将接口A限制为具有任何类类型的接口B

我在想它可能看起来像

interface A<T> where T : B<T>
接口A,其中T:B

接口A,其中T:class
但两者似乎都不起作用


有什么解决办法吗?

你设计得太多了。 只需这样做:

interface A<T> where T : class
{
    B<T> SomeProperty { get;}
    void SomeMethod(B<T> param);
}
接口A,其中T:class
{
B SomeProperty{get;}
方法(B参数);
}

您的第一次尝试“无效”的原因是什么?我不确定您到底想要实现什么,但是第一个版本忽略了
约束:
接口A,其中T:class,B{}
似乎不起作用?它以什么方式不起作用?您是否只是缺少
A
中的类约束?非常简单
interface A<T> where T : class
{
    B<T> SomeProperty { get;}
    void SomeMethod(B<T> param);
}