迭代程序
我们前面讨论的 UserCollection 示例只展示了自定义集合中可能需要的基本功能。有一个操作无法通过所提供的实现来完成,即通过一个 foreach 循环在集合中循环。要完成此操作,您的自定义集合必须具有实现 IEnumerable 接口的枚举数支持类。这是一个非常直观且重复性较强的过程,但却引入了更多的代码。C# 2.0 引入了新的 yield 关键字来为您处理此接口的实现细节。Visual Basic .NET 中当前没有与新的 yield 关键字等效的关键字。
参考资料:
• What’s new In C# 2.0 - Iterators
• C# Iterators
返回页首
小结
请勿轻率地做出向自定义实体与集合转换的决定。这里有许多需要考虑的因素。例如,您对 OO 概念的熟悉程度、可用来熟悉新方法的时间以及您打算部署它的环境。虽然总体上它们有很大的优点,但并不一定适合您的特定情况。即使适合您的情况,它们的缺点也可能会打消您使用它们的念头。还要记住有许多可替代的解决方案。Jimmy Nilsson 在他的 Choosing Data Containers for .NET 中概述了其中的某些替代方案,此专栏系列包括 5 部分(1、2、3、4、5)。
自定义实体使您获得了面向对象的编程的丰富功能,并帮助您构建了可靠、可维护的 N 层体系结构的框架。本指南的目的之一是让您从构成系统的业务实体,而不是一般的 DataSet 和 DataTable 的角度来考虑您的系统。我们还讨论了一些关键的问题,不管您选择的途径(即设计模式)、对象世界与关系世界的差异(了解详细信息)以及 N 层体系结构是什么,您都应注意这些问题。请记住,您之前花费的时间会在系统的整个生命周期内为您带来更多的回报。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/