c# - 如何在 C# 接口(interface)中使用泛型类型参数

标签 c# generics interface parameters

我有

public interface IPersistedModel<TModel, TIdentifier>

我想定义一个接口(interface),其中有一个使用上面的泛型类型参数的泛型方法。有没有办法做到这一点?我尝试了以下方法,但都没有编译。

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);
}

最佳答案

不幸的是,您需要在接口(interface)本身中包含泛型类型:

public interface IModelCollection<T, TModel, TIdentifier> 
       where T : IPersistedModel<TModel, TIdentifier>
{
    IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}

关于c# - 如何在 C# 接口(interface)中使用泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264609/

相关文章:

c# - 仅根据子句连接并选择第一项

c# - 在 C# 中的每个派生类中都有一个更具体的接口(interface)

vb.net - VB.NET接口(interface)中的读写属性

c# - 如何处理对通用类型事件的订阅?

java - 为什么嵌套接口(interface)隐式声明为静态?

validation - Kotlin:在界面中指定输入约束

c# - 如何从 [C# WP8.1 WRT/SL] 项目中调用 [Unmanaged C++ DLL func]

c# - 如何在 Windows 应用商店应用程序中获取正在执行的程序集版本信息?

iOS swift : Generic array cast to array of subclass

Java - 将类扩展为接口(interface)/抽象方法的返回类型