我有
public interface IPersistedModel<TModel, TIdentifier>
我想定义一个接口,其中我有一个泛型方法,它使用上面的泛型类型参数。有没有办法做到这一点?我尝试过以下但没有编译。
public interface IModelCollection1<IPersistedModel<TModel, TIdentifier>>
{
IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}
或
public interface IModelCollection2<T> where T : IPersistedModel<TModel, TIdentifier>
{
IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}
答案 0 :(得分:3)
不幸的是,您需要在接口本身中包含泛型类型:
public interface IModelCollection<T, TModel, TIdentifier>
where T : IPersistedModel<TModel, TIdentifier>
{
IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}
答案 1 :(得分:0)
您可以简单地使用通用方法,仅将通用参数添加到该方法
class A
{
static void Swap<T>(ref T lhs, ref T rhs)
{
T temp;
temp = lhs;
lhs = rhs;
rhs = temp;
}
}
答案 2 :(得分:0)
试试这个:
public interface Ione <T, U> where T : IInterfaceOne<T> where U : IInterfaceTwo<U>
{
}
public interface IInterfaceOne<T>
{
}
public interface IInterfaceTwo<U>
{
}