Chr*_*sco 0 c# generics interface generic-constraints
我对.NET比较陌生,并且偶然发现了这个特定问题:在遵循存储库模式教程时,该类的定义如下所示:
public class GenericRepository<TEntity> where TEntity : class { ...
Run Code Online (Sandbox Code Playgroud)
话虽这么说,这个类应该实现一个接口。既然我已经使用了该:运算符,我该怎么做呢?
我public class GenericRepository<TEntity> : IGenericRepository where TEntity : class {也尝试过public class GenericRepository<TEntity> where TEntity : class : IGenericRepository {,但没用
由于我已经使用了 : 运算符,我该怎么做?
:不是运算符 - 您只是在泛型类型约束中使用它。您仍然可以指定要实现的接口。
这应该没问题:
public class GenericRepository<TEntity> : IGenericRepository where TEntity : class
Run Code Online (Sandbox Code Playgroud)
或者,如果IGenericRepository是通用接口,您可能需要:
public class GenericRepository<TEntity> : IGenericRepository<TEntity>
where TEntity : class
Run Code Online (Sandbox Code Playgroud)