我希望您能帮忙翻译以下内容:
以下是我想要做的事情:
public interface IRepository<TSet<TElement>> where TSet<TElement> : IEnumerable<TElement>
{
TSet<TEntity> GetSet<TEntity>();
}
这样的构造在.NET中是否可行?
编辑:问题表述不够清晰。这是我想要做的事情的详细说明:
public class DbRepository : IRepository<DbSet<TElement>> {
DbSet<TEntity> GetSet<TEntity>();
}
public class ObjectRepository : IRepository<ObjectSet<TElement>> {
ObjectSet<TEntity> GetSet<TEntity>();
}
意思是,我希望受限制的类型: - 接受单个通用参数 - 实现给定的单个通用参数接口。
这是否可能?实际上,仅实现第一点也足够让我满意。
public interface IRepository<TGeneric<TElement>> {
TGeneric<TArgument> GetThing<TArgument>();
}
TSet<TElement>
实现了IEnumerable<TElement>
,那么你最好将限制设置在IEnumerable<TElement>
上。 - AliostadTElement
是一个类型参数,仅用于指定TSet
是具有一个类型参数的泛型类型。当调用方法GetSet
时,TEntity
是提供的类型参数。 - Jean Hominal