试图解决泛型错误

本文关键字:错误 泛型 解决 | 更新日期: 2023-09-27 18:01:07

我想知道如何初始化BaseDao类?

public class BaseDao<TEntity, TIdentifier>
where TIdentifier : new()
where TEntity : BaseVo<TIdentifier>
{
//has implementation
}
public class BaseVo<TIdentifier>
    where TIdentifier : new()
{
    /// <summary>
    /// Gets or sets the Identifier.
    /// </summary>
    public virtual TIdentifier Id { get; set; }
}

我正在试着做

 public BaseDao<Department, int>  GetDepartmentRepository()
    {
       return new BaseDao<Department, int>();

    }

但是得到错误-请帮助类型"Domain.Models.Entity.Department"不能用作泛型类型或方法"Domain.Modules.BaseDao"中的类型参数"TEntity"。没有从"Domain.Modes.Entities.Document"到"Domain.MModels.BaseVo"的隐式引用转换。

试图解决泛型错误

问题是Department类必须是从BaseVo<TIdentifier>派生的。

您可以这样定义Department类:

public class Department : BaseVo<int>
{
}