【发布时间】:2010-12-08 16:15:13
【问题描述】:
在访问了不同的网站以尝试了解使用自定义枚举的实时示例后,我放弃了这一行。我有例子。但它们让我感到困惑。
示例
1 次
class NumberArray
{
public int[] scores;
public NumberArray()
{
}
public NumberArray(int[] scores)
{
this.scores = scores;
}
public int[] Scores
{
get {return scores;}
}
}
参加 2 次strong>
public class Enumerator : IEnumerator
{
int[] scores;
int cur;
public Enumerator(int[] scores)
{
this.scores = scores;
cur = -1;
}
public Object Current
{
get {
return scores[cur];
}
}
public void Reset()
{
cur = -1;
}
public bool MoveNext()
{
cur++;
if (cur < scores.Length)
return true;
else return false;
}
}
public class Enumerable : IEnumerable
{
int[] numbers;
public void GetNumbersForEnumeration(int[] values)
{
numbers = values;
for (int i = 0; i < values.Length; i++)
numbers[i] = values[i];
}
public IEnumerator GetEnumerator()
{
return new Enumerator(numbers);
}
}
主要
static void Main()
{
int[] arr = new int[] { 1, 2, 3, 4, 5 };
NumberArray num = new NumberArray(arr);
foreach(int val in num.Scores)
{
Console.WriteLine(val);
}
Enumerable en = new Enumerable();
en.GetNumbersForEnumeration(arr);
foreach (int i in en)
{
Console.WriteLine(i);
}
Console.ReadKey(true);
}
在第 2 次中,我按照自定义迭代来迭代与我在第 2 次中所做的相同的整数数组 采取 1. 为什么我要绕过丛林使用自定义迭代来迭代整数?
可能我错过了实时自定义迭代的需求。你能解释一下我不能用现有的迭代工具完成的任务吗? (我刚完成学业,举个简单的例子,让我能正确理解)。
更新: 我从某个网站上获取了这些示例。该代码没有什么特别之处,即使不使用自定义迭代,我们也可以非常简单地实现它,我的兴趣是了解自定义迭代非常方便的真实场景。
【问题讨论】:
-
抱歉:我回答了您提出的问题,而不是您的意思。由于我的回答不受欢迎,我已投票删除它们。
-
对不起。我已经做了一般性声明。不要当真。很酷。
标签: c# enumerable design-consideration