C# 在接口声明中使用where
我有以下域对象:C# 在接口声明中使用where,c#,generics,repository,C#,Generics,Repository,我有以下域对象: public class Bank : IEntity { } 以及以下假设: public interface IRepository<TEntity> where TEntity : IEntity { } 公共接口i假设,其中tenty:ienty { } 是否需要的tenty:ienty?这意味着什么,张力属于张力类型?当我使用TEntity之类的东西时,是否有命名约定?T代表什么?其中tenty:ienty意味着tenty类型必须实现ienty接口。
public class Bank : IEntity
{
}
以及以下假设:
public interface IRepository<TEntity> where TEntity : IEntity
{
}
公共接口i假设,其中tenty:ienty
{
}
是否需要
的tenty:ienty
?这意味着什么,张力属于张力类型?当我使用TEntity之类的东西时,是否有命名约定?T代表什么?其中tenty:ienty
意味着tenty
类型必须实现ienty
接口。换句话说,在您的通用接口中,i假定
可以使用实现IEntity
接口的类型。其中TEntity:IEntity
意味着TEntity
类型必须实现IEntity
接口。换句话说,在您的通用接口中,您可以使用实现接口的类型。这取决于您的设计时需要
您可以用entity
替换generictenty
用法。但是,您将仅限于IEntity
的成员
您必须强制转换
IEntity
成员才能访问其子类型成员。这取决于您的设计时需要
您可以用entity
替换generictenty
用法。但是,您将仅限于IEntity
的成员
您必须强制转换
IEntity
成员才能访问其子类型成员。您的IRepository
是泛型类,TEntity
是泛型类型参数。它就像是实际类型的占位符
tenty:ienty
意味着您将要求所使用的实际类型实现ienty
,并且在实际存储库实现中,您可以引用接口ienty
公开的方法和属性
是否需要它取决于存储库的预期用途。通常,类型限制用于强制执行泛型实现所依赖的类型的某些属性。您的
IRepository
是泛型类,TEntity
是泛型类型参数。它就像是实际类型的占位符
tenty:ienty
意味着您将要求所使用的实际类型实现ienty
,并且在实际存储库实现中,您可以引用接口ienty
公开的方法和属性
是否需要它取决于存储库的预期用途。通常,类型限制用于强制执行泛型实现所依赖的类型的某些属性。您可以在中阅读有关泛型约束及其使用的信息,您可能需要查看以获取更多官方信息
< t >,这是一个严格的惯例,当C++被称为“”时,它会回到C++。(不过,这是一个您应该遵循的惯例。)您可以阅读有关通用约束及其在中的使用的信息,您可能想查看更多官方报道 < t >,这是一个严格的惯例,当C++被称为“”时,它会回到C++。(然而,这是一个你应该遵循的惯例。)