从 C# 中的泛型基类继承

问题描述 投票:0回答:1

我想从通用的

TEntity
继承,但我收到此错误:

编译器错误CS0689
无法从“标识符”派生,因为它是类型参数

泛型类的基类或接口不能由类型参数指定。从特定的类或接口派生,或者从特定的泛型类派生,或者包含未知类型作为成员。

这是我的代码:

public class CreateCategoryCommand<TEntity> : TEntity, ICommand<CategoryDtoSelect>
{
}
c# generics inheritance entity mediatr
1个回答
0
投票

那是不可能的。

您不能从用作类型参数的类型继承。原因是编译器需要知道

TEntity
的方法和字段才能创建派生类。但由于它是通用的,所以不起作用。

您可以从另一个类继承,将

TEntity
作为类型参数,也可以使用聚合。您可以声明一个类型为
TEntity
的字段。

© www.soinside.com 2019 - 2024. All rights reserved.