Win*_*der 4 .net c# ienumerable ienumerator
好的,所以我只是通过IEnumerator和IEnumerable.现在MSDN说这些东西的主要目标是遍历客户集合.
很公平但我能够在不使用任何一个的情况下迭代自定义集合(或者至少我想这么认为)
namespace ienumerator
{
class person
{
public person(string first, string second)
{
fname = first;
lname = second;
}
public string fname { get; set; }
public string lname { get; set; }
}
class person_list
{
public person[] list;
public person_list(person[] per)
{
list = new person[per.Length];
for (int i = 0; i < per.Length; i++)
{
list[i] = per[i];
}
}
}
class Program
{
static void Main(string[] args)
{
person[] names = new person[3]
{
new person("some","one"),
new person("another","one"),
new person("sss","ssdad"),
};
person_list list_of_names = new person_list(names);
int i = 0;
while (i < list_of_names.list.Length)
{
Console.WriteLine(list_of_names.list[i].fname);
i++;
}
Console.Read();
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么,在我的理解是有缺陷的,上面给我,我实现后达到同样的效果IEnumerator和IEnumerable.
Eri*_*ert 17
然而,我可以在不使用任何一个的情况下迭代自定义集合
当然,您可以在没有界面的情况下迭代自己的集合; 如果你不能,那你将如何实现界面?
作为代码实现者,您不会为了方便而实现接口.您为了方便代码的使用者而实现它.界面意味着"关注客户:您可以枚举此集合的内容,而无需了解我如何实现它".
这就是界面的目的:它提供了一种抽象,允许代码的消费者使用它而无需了解它的工作原理.
| 归档时间: |
|
| 查看次数: |
4436 次 |
| 最近记录: |