为什么我不能用参数调用基础构造函数方法?

Exp*_* be 3 c# oop

public class GenericRepository<TEntity> where TEntity : class
{
    internal DbContext context;
    internal DbSet<TEntity> dbSet;

    public GenericRepository(DbContext context)
    {
        this.context = context;
        this.dbSet = context.Set<TEntity>();
    }
    //snip
}

public class MyRepository<TEntity> where TEntity : GenericRepository<TEntity>
{
        public MyRepository(DbContext context) : base(context){ }
        //snip
}
Run Code Online (Sandbox Code Playgroud)

我扩展了GenericRepository类,并使用base的成员变量,我需要在child的构造函数中调用Base的构造函数.但我得到一个错误,上面写着:

'object'不包含带有1个参数的构造函数

即使GenericRepository有构造函数.

我究竟做错了什么?

D S*_*ley 11

因为你的"基类" object不是GenericRepository<TEntity>.你添加了一个约束TEntity,你没有继承GenericRepository<TEntity>.也许你这意味着:

public class MyRepository<TEntity> : GenericRepository<TEntity> where TEntity : class
{
    public MyRepository(DbContext context) : base(context){ }
Run Code Online (Sandbox Code Playgroud)