【发布时间】:2015-12-19 16:43:44
【问题描述】:
public interface IRepository <T> where T : EntityBase
{
T FindBy(object key);
void Add(T item);
T this[object key] { get; set; }
void Remove(T item);
}
这是“Domain-Driven-Design .NET C#”一书的作者给出的通用存储库接口的代码示例。在没有解释的情况下,作者在接口T this[object key] { get; set; } 中放置了一个索引器,其中对象键是对象ID(就整个系统的身份而言)。作者指出,放置索引器是为了强调存储库应该模拟内存中的对象集合。所以我的问题是:将索引器放入界面有什么好处吗?任何链接、视频、书籍、教程都会对我有很大帮助。谢谢你。
【问题讨论】:
-
“而不是 IEnumerable 或 List”是什么意思?您能否展示这些替代索引器的方法?
-
使用索引器和返回
IEnumerable或List是不同的,因为T不是一个集合。我想在给定一个已知键时使用索引器,我可以检索它的值,或者给定一个键集它的值。也许详细说明你的意思而不是要求教程。 -
对于不相关的信息,我深表歉意。并不是要把 IEnumerable 或 List 放在那个上下文中。我在翻译中迷路了。我将编辑问题。感谢您的耐心等待。
-
呃,如果你需要一个索引器,你就放一个。我不明白这个问题。
标签: c# .net generics interface