Я опускаю эту строку после посещения разных веб-сайтов, чтобы попытаться понять пример использования пользовательского перечисления в реальном времени. У меня есть примеры. Но они приводят меня в замешательство.
Пример
Бери 1
class NumberArray
{
public int[] scores;
public NumberArray()
{
}
public NumberArray(int[] scores)
{
this.scores = scores;
}
public int[] Scores
{
get {return scores;}
}
}
Бери 2
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 я следовал пользовательской итерации, чтобы повторить тот же массив целых чисел, что и в
принять 1. Почему я должен бить о куст, чтобы перебрать целое число с помощью пользовательской итерации ?
Возможно, я пропустил пользовательскую итерацию в реальном времени . Можете ли вы объяснить мне задачу, которую я не могу сделать с существующим средством итерации? ( Я только что закончил обучение, приведите простой пример, чтобы я мог его правильно понять ).
Обновление:
Я взял эти примеры с какого-то сайта. В этом коде нет ничего особенного, мы можем достичь этого очень просто, даже не используя пользовательскую итерацию, мне было интересно узнать реальный сценарий, где пользовательская итерация весьма удобна.